cc

          隨筆 - 20, 文章 - 0, 評(píng)論 - 1, 引用 - 0
          數(shù)據(jù)加載中……

          VB中的時(shí)間處理問(wèn)題

          編程中常常會(huì)與時(shí)間打交道,VB編程自然也不例外。以下就談?wù)勎以谶@方面的一點(diǎn)經(jīng)驗(yàn)。
             VB中提供了很多變量類型,DATE型就是專門用了存儲(chǔ)時(shí)間的。
             1、DATE型變量及其相關(guān)函數(shù)。
             在內(nèi)部,一個(gè)Date占8個(gè)字節(jié)的內(nèi)存,你可以方便地用它來(lái)存儲(chǔ)日期和時(shí)間。給Date變量賦值是很容易的。但請(qǐng)保證輸入順序與系統(tǒng)默認(rèn)的時(shí)間表示順序相同。例如:
             Dim d As Date
             d = #5/23/99 11:45:34 AM#
             DateSerial函數(shù)可以把年、月、日的數(shù)字組合成一個(gè)Date值。TimeSerial函數(shù)可把小時(shí)、分、秒的數(shù)字組合成一個(gè)Date值。且兩函數(shù)可以疊加。
             d = DateSerial(1999, 5, 23) + TimeSerial(11, 45, 34)
             而DateValue 和TimeValue 函數(shù)則可將代表日期和時(shí)間的字符串轉(zhuǎn)化為Date型,并且也可以疊加。
             d = DateValue(“1999/ 5/ 23”) + TimeValue(“11: 45: 34”)
             Format函數(shù)可按預(yù)定的格式顯示或打印一個(gè)Date變量。如:
             Print Format(d, “general date”) `99-5-23 11:45:34
             Print Format(d, “l(fā)ong date”) `1999年5月23日
             Print Format(d, “medium date”) `99-05-23
             Print Format(d, “short date”) `99-5-23
             Print Format(d, “l(fā)ong time”) `11:45:34
             Print Format(d, “medium time”) `11:45 AM
             Print Format(d,“short time”) `11:45
             Format函數(shù)也允許你自己規(guī)定顯示格式。如:
             Print Format(d, “mmmm”) `may 產(chǎn)生日期中月份的英文
             以以上日期為例,如想顯示其中的一部分信息可使用以下函數(shù):
             Print Month(d) `5
             Print Day(d) `23
             Print Year(d) `1999
             Print Hour(d) `11
             Print Minute(d) `45
             Print Second(d) `34
             Print WeekDay(d)`1
             Weekday 提供了一組內(nèi)部常量,vbSunday代表1,直到 vbSaturday代表7。
             Now 函數(shù)可返回今天的日期及時(shí)間。如:
             Private Sub Form_Click()
             Dim d As Date
             d = Now
             Print d
             End Sub
             靈活地應(yīng)用以上的函數(shù),可以大大地簡(jiǎn)化你的程序。例如想計(jì)算10000秒等于幾小時(shí)幾分幾秒可寫為:
             Private Sub Form_Click()
             Dim d As Date
             d = TimeSerial(0, 0, 10000)
             Print d
             End Sub
             結(jié)果為2:46:40。
             2、與時(shí)間相關(guān)的常用控件。
             Timer控件是一個(gè)奇特的控件。Timer 控件會(huì)在固定時(shí)間間隔中運(yùn)行Timer事件。此間隔是由Interval屬性決定的,其單位為千分之一秒。但不要以為將其值設(shè)為0事件就可不間斷地運(yùn)行了。結(jié)果恰恰相反,事件將一次也不運(yùn)行。同時(shí)還要注意變量的聲明。如:
             Private Sub Timer1_Timer()
             Dim a As Integer
             a = a + 1
             Print a
             End Sub

             Dim a As Integer
             Private Sub Timer1_Timer()
             a = a + 1
             Print a
             End Sub
             試試看,其結(jié)果是完全不同的。
             當(dāng)需要用戶輸入時(shí)間時(shí),為避免出現(xiàn)錯(cuò)誤的時(shí)間,可以使用日歷控件。它只允許用戶在日歷表中選擇日期,避免了錯(cuò)誤的發(fā)生。
             3、記錄時(shí)間的API函數(shù)。
             GetTickCount Windows API函數(shù)可返回 Windows 啟動(dòng)以來(lái)消失的毫秒數(shù)。其精度高于VB的Timer 函數(shù)。且Timer 函數(shù)會(huì)在午夜清零,而GetTickCount 函數(shù)只有當(dāng)機(jī)器連續(xù)使用49.7天后才返回零。這為我們編程提供了很大的方便。例如想知道你的電腦連續(xù)工作多久了,可新建一工程,然后添加以下代碼:
             Private Declare Function GetTickCount Lib “kernel32" () As Long
             Private Sub Form_Load()
             Dim d As Date
             Dim t As Integer
             Form1.Show
             t = GetTickCount \ 1000
             d = TimeSerial(0, 0, t)
             Print d
             End Sub??


          posted on 2006-11-11 10:37 cc 閱讀(367) 評(píng)論(1)  編輯  收藏

          評(píng)論

          # re: VB中的時(shí)間處理問(wèn)題   回復(fù)  更多評(píng)論   

          我也遇到同樣的問(wèn)題
          2008-12-30 13:16 | 北京時(shí)間

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 休宁县| 射阳县| 合作市| 乌拉特中旗| 察隅县| 普兰店市| 延长县| 伊金霍洛旗| 固镇县| 盐亭县| 盈江县| 东方市| 嘉禾县| 习水县| 普宁市| 汝州市| 丹东市| 印江| 德格县| 汝城县| 盘山县| 三台县| 柳河县| 察雅县| 嘉禾县| 中宁县| 山东省| 乌鲁木齐市| 通城县| 宁夏| 乐陵市| 奎屯市| 鞍山市| 贡嘎县| 井陉县| 汪清县| 南安市| 十堰市| 潼关县| 德阳市| 祁阳县|