2018年10月16日 星期二

VB函數Time和Timer的區別

想做一個簡單的延時函數,於是想到VB中Time函數和Timer函數,二者都可以做延時函數,但略有不同。



Time是時間函數,取得是當前時間,如:15:16:14,和其它日期時間函數的內容差不多,如

Now是獲取系統當前日期和時間,如:2016-06-15 15:23:34;Time只是獲取系統的時間部分,如:15:23:34,不顯示當前日期;

Date只是獲得系統的日期部分,如:2016-06-15,不顯示當前時間。這些函數內容其實是個浮點數,如42536.6407523,其中的整數部分表示日期,為1900年1月1日到現在的天數(1900年1月1日的值是1.xxxxxxx),小數部分是時間,是一天中從0時到現在的時間,單位是天,即一天的時間為1,那個值就是現在已經過去的時間。

如果按秒算就是從0時到現在經過的秒數除以一天的秒數(24*3600秒)得到的結果。

NOW函數是整數小數都有(42536.6407523),Time值取小數部分(0.6407523),而Date函數只取整數部分(42536)。實際顯示時,系統再把這些值轉換為相應的日期時間格式。

Timer函數是定時器函數,其內容為從0時到現在的時間,但單位是秒,如56426.86,其最大值應該是24*3600,即86400秒。雖然其單位是秒,但其精度比這要高,老一點的電腦時鐘中斷為每秒18.2次,就是說時間間隔在0.055秒(55毫秒)左右,現在的機器一般都比這個高,具體多少需要測試。詳細見:【VBA研究】VBA中編寫延時函數

所謂延時函數,就是取一時間值,然後取當前時間值和前一時間值之差,達到指定的值時延時結束。綜上所述,Now、Time和Timer都可以做延時函數,但用Timer函數還是方便一點,因為其值的單位是秒。

順便說一下Timer定時控件,主要用來做定時重覆做的事情,當然也可以做延時函數,主要有Enable和Interval 兩個屬性。Enable屬性用來開啟和停止定時器,Interval 屬性用來設定時間間隔,單位是毫秒,定時產生timer事件,在這個事件的響應過程中指定要做的事,如下所示:

Private Sub Timer1_Timer()
。。。。。。
End Sub
---------------------
作者:宋哥
來源:CSDN
原文:https://blog.csdn.net/iamlaosong/article/details/51682446?utm_source=copy
版權聲明:本文為博主原創文章,轉載請附上博文鏈接

沒有留言:

張貼留言