cc

          隨筆 - 20, 文章 - 0, 評論 - 1, 引用 - 0
          數據加載中……

          VB中的時間處理問題

          編程中常常會與時間打交道,VB編程自然也不例外。以下就談談我在這方面的一點經驗。
             VB中提供了很多變量類型,DATE型就是專門用了存儲時間的。
             1、DATE型變量及其相關函數。
             在內部,一個Date占8個字節的內存,你可以方便地用它來存儲日期和時間。給Date變量賦值是很容易的。但請保證輸入順序與系統默認的時間表示順序相同。例如:
             Dim d As Date
             d = #5/23/99 11:45:34 AM#
             DateSerial函數可以把年、月、日的數字組合成一個Date值。TimeSerial函數可把小時、分、秒的數字組合成一個Date值。且兩函數可以疊加。
             d = DateSerial(1999, 5, 23) + TimeSerial(11, 45, 34)
             而DateValue 和TimeValue 函數則可將代表日期和時間的字符串轉化為Date型,并且也可以疊加。
             d = DateValue(“1999/ 5/ 23”) + TimeValue(“11: 45: 34”)
             Format函數可按預定的格式顯示或打印一個Date變量。如:
             Print Format(d, “general date”) `99-5-23 11:45:34
             Print Format(d, “long date”) `1999年5月23日
             Print Format(d, “medium date”) `99-05-23
             Print Format(d, “short date”) `99-5-23
             Print Format(d, “long time”) `11:45:34
             Print Format(d, “medium time”) `11:45 AM
             Print Format(d,“short time”) `11:45
             Format函數也允許你自己規定顯示格式。如:
             Print Format(d, “mmmm”) `may 產生日期中月份的英文
             以以上日期為例,如想顯示其中的一部分信息可使用以下函數:
             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 提供了一組內部常量,vbSunday代表1,直到 vbSaturday代表7。
             Now 函數可返回今天的日期及時間。如:
             Private Sub Form_Click()
             Dim d As Date
             d = Now
             Print d
             End Sub
             靈活地應用以上的函數,可以大大地簡化你的程序。例如想計算10000秒等于幾小時幾分幾秒可寫為:
             Private Sub Form_Click()
             Dim d As Date
             d = TimeSerial(0, 0, 10000)
             Print d
             End Sub
             結果為2:46:40。
             2、與時間相關的常用控件。
             Timer控件是一個奇特的控件。Timer 控件會在固定時間間隔中運行Timer事件。此間隔是由Interval屬性決定的,其單位為千分之一秒。但不要以為將其值設為0事件就可不間斷地運行了。結果恰恰相反,事件將一次也不運行。同時還要注意變量的聲明。如:
             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
             試試看,其結果是完全不同的。
             當需要用戶輸入時間時,為避免出現錯誤的時間,可以使用日歷控件。它只允許用戶在日歷表中選擇日期,避免了錯誤的發生。
             3、記錄時間的API函數。
             GetTickCount Windows API函數可返回 Windows 啟動以來消失的毫秒數。其精度高于VB的Timer 函數。且Timer 函數會在午夜清零,而GetTickCount 函數只有當機器連續使用49.7天后才返回零。這為我們編程提供了很大的方便。例如想知道你的電腦連續工作多久了,可新建一工程,然后添加以下代碼:
             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 閱讀(365) 評論(1)  編輯  收藏

          評論

          # re: VB中的時間處理問題   回復  更多評論   

          我也遇到同樣的問題
          2008-12-30 13:16 | 北京時間

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 镇安县| 泰州市| 连江县| 锦屏县| 肥乡县| 隆尧县| 乌什县| 应城市| 北海市| 乃东县| 师宗县| 杭州市| 兴城市| 彩票| 石家庄市| 水城县| 武威市| 谷城县| 三江| 镇赉县| 绥江县| 开化县| 崇礼县| 白河县| 响水县| 宜宾市| 鄂托克旗| 雷波县| 鸡西市| 晴隆县| 滦南县| 泸溪县| 平山县| 南安市| 佛坪县| 克拉玛依市| 凤庆县| 望谟县| 景洪市| 广安市| 利川市|