VB中的時(shí)間處理問(wèn)題
http://www.cnblogs.com/mitang/archive/2010/10/19/1855239.html
1-----------定義日期
dim dat as date
dat=#10:10:10#
dat=#2012/12/12 10:10:10#
2----------日期組合
dat = DateSerial(1999, 5, 23) + TimeSerial(11, 45, 34)
dat= DateValue(“1999/ 5/ 23”) + TimeValue(“11: 45: 34”)
3-----------日期相加
DateAdd(interval, number, date)
4-------------日期相減
datadiff("n",#10:10:10#,#11:11:11#)
函數(shù)名
函數(shù)功能
語(yǔ)法結(jié)構(gòu)
DATE 函數(shù)
返回包含系統(tǒng)日期的VARIANT(DATE) 。
DATE
DATEADD函數(shù)
返回包含一個(gè)日期的VARIANT(DATE) ,這個(gè)日期還加上了一段時(shí)間間隔。
DateAdd(interval,number,date)
DateDiff函數(shù)
返回Variant(Long)的值,表示兩個(gè)指定日期間的時(shí)間間隔數(shù)目。
DateDiff (interval,date1,date2,firstdayofweek [,firstweekofyear])
DatePart函數(shù)
返回一個(gè)包含已知日期的指定時(shí)間部分的Variant(Integer)
DatePart(interval,date[,firstdayofweek][,firstweekofyear ] )
DateSerial函數(shù)
返回包含指定的年月日的Variant(Date)
DateSerial( year ,month ,day )
DateValue函數(shù)
返回一個(gè)Variant(Date)
DateValue(Date)
Day函數(shù)
返回一個(gè)Variant(Integer) ,其值為1到31之間的整數(shù),表示一個(gè)月中的某一日
Day(Date)
Hour函數(shù)
返回一個(gè)Variant(Integer) ,其值為0到23之間的整數(shù),表示一天之中的某一個(gè)鐘點(diǎn)
Hour(time)
Minute函數(shù)
返回一個(gè)Variant(Integer) ,其值為0到59之間的整數(shù),表示一個(gè)小時(shí)中的某一分鐘
Minute(time
Now函數(shù)
返回一個(gè)Variant(Date) ,根據(jù)計(jì)算機(jī)系統(tǒng)設(shè)置的日期和時(shí)間來(lái)指定日期和時(shí)間
Now
Second函數(shù)
返回一個(gè)Variant(Integer) ,其值為0到59之間的整數(shù),表示一分鐘之內(nèi)的某一秒鐘
Second(time)
Time函數(shù)
返回一個(gè)指明當(dāng)前系統(tǒng)時(shí)間的Variant(Date)
Time
Time語(yǔ)句
設(shè)置系統(tǒng)時(shí)間
Time = time
Timer函數(shù)
返回一個(gè)Single,代表從午夜開始到現(xiàn)在所經(jīng)過(guò)的秒數(shù)
Timer
TimeSerial函數(shù)
數(shù) 返回一個(gè)Variant(Date) ,包含具有現(xiàn)在時(shí)、分、秒的時(shí)間。
TimeSerial(hour,minute,second)
TimeValue函數(shù)
返回一個(gè)包含時(shí)間的Variant(Date)
TimeValue(time)
Weekday函數(shù)
返回一個(gè)Variant(Integer) ,包含一個(gè)整數(shù),代表某個(gè)日期是星期幾
Weekday(date[,firstdayofweek])
Year函數(shù)
返回一個(gè)Variant(Integer) ,包含表示年份的整數(shù)
Year(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
-------------------------------------------------------
CDate()函數(shù)將得到地時(shí)間字符串進(jìn)行轉(zhuǎn)換為date類型地值,然后在插入到數(shù)據(jù)庫(kù)中,開端在一臺(tái)電腦上運(yùn)行并沒有錯(cuò)。轉(zhuǎn)換的結(jié)果與電腦中時(shí)間的格式設(shè)置有關(guān)
系統(tǒng)設(shè)置相關(guān)開端——〉設(shè)置——〉掌握面板——〉區(qū)域和語(yǔ)言選項(xiàng)——〉區(qū)域選項(xiàng)——〉自定義——〉時(shí)間(日期)
可用進(jìn)行二次轉(zhuǎn)換:format(cdate(),"YYYY-MM-DDHH:MM:SS")
\
1.Cdate(日期表達(dá)式)
將日期表達(dá)式轉(zhuǎn)換成日期類型的數(shù)據(jù)。
日期表達(dá)式是任何可以解釋成日期的表達(dá)式,包含日期文字,可以看作日期的字符串以及從函數(shù)返回的日期。
比如:myDate
CDate
2.Now()
返回當(dāng)前計(jì)算機(jī)系統(tǒng)設(shè)置的日期和時(shí)間。
3.Year(日期表達(dá)式)
返回表示年份的整數(shù)。
比如:Year("00-6-15")
4.Month(日期表達(dá)式)
返回
比如:Month("00-6-15")
5.DateAdd(interval,
返回一個(gè)日期,這一日期加上了一段時(shí)間間隔??梢杂?nbsp;
DataAdd
interval
number
date
interval
yyyy
q
m
y
d
w
ww
h
n
s
比如:
DateAdd("d",10,"2000-6-18")
DateAdd("m",-1,"2000-6-18")
==========================DateDiff 函數(shù)解釋==========================
DateDiff (I , D1 , D2[,FW[,FY]])
計(jì)算兩個(gè)日期之間的期間?
I :設(shè)定兩個(gè)日期之間的期間計(jì)算之單位。譬如 >I="m" 表示計(jì)算的單位為月。 >I 的設(shè)定值如:
yyyy > Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 時(shí)
s Second 秒
D1 ,D2:計(jì)算期間的兩個(gè)日期表達(dá)式,若 >date1 較早,則兩個(gè)日期之間的期間結(jié)果為正值;若 >date2 較早, 則結(jié)果為負(fù)值。
FW :設(shè)定每周第一天為星期幾, 若未設(shè)定表示為星期天。 >FW 的設(shè)定值如下:
0 使用 >API 的設(shè)定值。
1 星期天
2 星期一
3 星期二
4 星期三
5 星期四
6 星期五
7 星期六
FY :設(shè)定一年的第一周, 若未設(shè)定則表示一月一日那一周為一年的第一周。 >FY 的設(shè)定值如下:
0 使用 >API 的設(shè)定值。
1 一月一日那一周為一年的第一周
2 至少包括四天的第一周為一年的第一周
3 包括七天的第一周為一年的第一周
聯(lián)系客服