回复:在设定时间段内,输出如何置1

已锁定

龟仙人

西门子1847工业学习平台

  • 帖子

    928
  • 精华

    15
  • 被关注

    162

论坛等级:奇侠

注册时间:2006-12-15

普通 普通 如何晋级?

发布于 2022-11-07 12:51:11

17楼

Private BiasTime As Long

Private StandardTimeBias As Long

Private PrevNow As Date

Private Const DayLightTimeSavingGap = (50 * 60) / 86400 'mininum 50 minute gap

Private Const OneHour = 60 * 60 '3600 seconds


Public Function DelaySeconds(Delay As Single)

    Dim Start As Single

    Start = Timer

    

    If Start + Delay > 86400 Then

        Do Until Timer < Start

            DoEvents

        Loop

        Delay = Start + Delay - 86400

        Start = 0

    End If

    

    Do Until Timer > Start + Delay

        DoEvents

    Loop


End Function

'10/18/2011-CC Fix the daylight time saving issue

'SysTime returns date in GMT time zone instead of local time zone

Public Function SysTime() As Date

Dim t As SYSTEMTIME

Dim bias As Long

Dim x As Date

    If (CDbl(Now) - CDbl(PrevNow) > DayLightTimeSavingGap) And (BiasTime = StandardTimeBias) Then

        'Currnet time transits from Standard time zone to DayLightTimeSavingZone

        BiasTime = mDayLightTimeBias.GetTimeZoneBias

    ElseIf (CDbl(PrevNow) - CDbl(Now) > DayLightTimeSavingGap) And (BiasTime <> StandardTimeBias) Then

         'Current Time transits from DayLightTimeSaving zone to Standard time zone

        BiasTime = mDayLightTimeBias.GetTimeZoneBias

    End If

    PrevNow = Now

    SysTime = CDate(CDbl(Date) + (BiasTime + Timer) / 86400)

End Function

Public Sub Init_DaylightTimeSaving_BiasTime()

    PrevNow = Now

    BiasTime = mDayLightTimeBias.GetTimeZoneBias

    StandardTimeBias = mDayLightTimeBias.GetStandardTimeBias

End Sub


'10/18/2011-CC Fix the daylight time saving issue

'SysTime returns date in GMT time zone instead of local time zone

Public Function SysTime_1() As Date

Dim t As SYSTEMTIME

Dim bias As Long

Dim x As Date

    

     x = LocalTime

    GetSystemTime t

    SysTime_1 = DateSerial(t.wYear, t.wMonth, t.wDay) + TimeSerial(t.wHour, t.wMinute, t.wSecond) + t.wMilliseconds / 86400000#

   ' Debug.Print "UTC duration", ElapsedSeconds_LocalTime(x)

End Function

'10/18/2011-CC Fix the daylight time saving issue

'LocalTime returns date format in local time zone

Public Function LocalTime() As Date

Dim t As SYSTEMTIME

    LocalTime = CDate(CDbl(Date) + Timer / 86400)

End Function

Public Function ElapsedSeconds_LocalTime(DT As Date) As Double

    ElapsedSeconds_LocalTime = Abs((CDbl(Date) + Timer / 86400 - CDbl(DT)) * 86400)

End Function



Public Function ElapsedSeconds(DT As Date) As Double

     If (CDbl(Now) - CDbl(PrevNow) > DayLightTimeSavingGap) And (BiasTime = StandardTimeBias) Then

        'Currnet time transits from Standard time zone to DayLightTimeSavingZone

        BiasTime = mDayLightTimeBias.GetTimeZoneBias

    ElseIf (CDbl(PrevNow) - CDbl(Now) > DayLightTimeSavingGap) And (BiasTime <> StandardTimeBias) Then

         'Current Time transits from DayLightTimeSaving zone to Standard time zone

        BiasTime = mDayLightTimeBias.GetTimeZoneBias

    End If

    PrevNow = Now

    ElapsedSeconds = Abs((CDbl(Date) + (BiasTime + Timer) / 86400 - CDbl(DT)) * 86400)

End Function

'10/18/2011-CC Fix the daylight time saving issue

'ElapsedSeconds returns seconds difference between DT and current time

'DT is in GMT time zone

Public Function ElapsedSeconds_1(DT As Date) As Double

Dim x As Date

Dim y As Date

    x = LocalTime

    y = SysTime

   ' Debug.Print "ElapsedSecond Duration 1", ElapsedSeconds_LocalTime(x)

    ElapsedSeconds_1 = Abs(CDbl(y) - CDbl(DT)) * 86400

  '  Debug.Print "ElapsedSecond Duration 2", ElapsedSeconds_1

End Function

别人写的一段程序,可以参考一下。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8941条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。