VB中的时间处理问题 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#)
Dim d1,startdate,enddate,buf As Date
X_BASE_TIME =DateValue(DTPicker1.Value) + TimeValue(Combo3.Text & ":" & Combo2.Text & ":00")
startdate = Format$(X_BASE_TIME,"yyyy/mm/dd hh:mm:ss")
d1 = DateAdd("n",X_BASE_TIME)
buf = Format$(d1,"yyyy/mm/dd hh:nn:ss")
'd1 = X_BASE_TIME + TimeValue("00:05:00")
enddate = Format$(buf,"yyyy/mm/dd hh:nn:ss")
函数名 函数功能 语法结构 DATE 函数 返回包含系统日期的VARIANT(DATE) 。 DATE DATEADD函数 返回包含一个日期的VARIANT(DATE) ,这个日期还加上了一段时间间隔。 DateAdd(interval,date) DateDiff函数 返回Variant(Long)的值,表示两个指定日期间的时间间隔数目。 DateDiff (interval,date1,date2,firstdayofweek [,firstweekofyear]) DatePart函数 返回一个包含已知日期的指定时间部分的Variant(Integer) DatePart(interval,date[,firstdayofweek][,firstweekofyear ] ) DateSerial函数 返回包含指定的年月日的Variant(Date) DateSerial( year ,month ,day ) DateValue函数 返回一个Variant(Date) DateValue(Date) Day函数 返回一个Variant(Integer) ,其值为1到31之间的整数,表示一个月中的某一日 Day(Date) Hour函数 返回一个Variant(Integer) ,其值为0到23之间的整数,表示一天之中的某一个钟点 Hour(time) Minute函数 返回一个Variant(Integer) ,其值为0到59之间的整数,表示一个小时中的某一分钟 Minute(time Now函数 返回一个Variant(Date) ,根据计算机系统设置的日期和时间来指定日期和时间 Now Second函数 返回一个Variant(Integer) ,其值为0到59之间的整数,表示一分钟之内的某一秒钟 Second(time) Time函数 返回一个指明当前系统时间的Variant(Date) Time Time语句 设置系统时间 Time = time Timer函数 返回一个Single,代表从午夜开始到现在所经过的秒数 Timer TimeSerial函数 数 返回一个Variant(Date) ,包含具有现在时、分、秒的时间。 TimeSerial(hour,minute,second) TimeValue函数 返回一个包含时间的Variant(Date) TimeValue(time) Weekday函数 返回一个Variant(Integer) ,包含一个整数,代表某个日期是星期几 Weekday(date[,firstdayofweek]) Year函数 返回一个Variant(Integer) ,包含表示年份的整数 Year(Date)
编程中常常会与时间打交道,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,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,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,t) Print d End Sub
-------------------------------------------------------
CDate()函数将得到地时间字符串进行转换为date类型地值,然后在插入到数据库中,开端在一台电脑上运行并没有错。转换的结果与电脑中时间的格式设置有关
系统设置相关开端——〉设置——〉掌握面板——〉区域和语言选项——〉区域选项——〉自定义——〉时间(日期)
可用进行二次转换:format(cdate(),"YYYY-MM-DDHH:MM:SS")
1.Cdate(日期表达式) 将日期表达式转换成日期类型的数据。 日期表达式是任何可以解释成日期的表达式,包含日期文字,可以看作日期的字符串以及从函数返回的日期。 比如:myDate=CDate("99-5-20"),这样的日期表达式必须加双引号,否则结果不可预料。 CDate依据系统上的区域设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。
2.Now() 返回当前计算机系统设置的日期和时间。
3.Year(日期表达式) 返回表示年份的整数。 比如:Year("00-6-15")=2000
4.Month(日期表达式) 返回1到12之间的整数,表示一年中的某月。 比如:Month("00-6-15")=6
5.DateAdd(interval,number,date) 返回一个日期,这一日期加上了一段时间间隔。可以用DateAdd来计算距今天为三十天的日期;或者计算距现在为45分钟的时间。
DataAdd函数参数参数说明
interval字符串表达式,是所要加上去的时间间隔的单位。 number数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。 date日期表达式,这一日期还加上了时间间隔。
interval参数设定值值说明 yyyy年 q季 m月 y一年的日数 d日 w一周的日数 ww周 h时 n分钟 s秒
比如: DateAdd("d",10,"2000-6-18")=2000-06-28 DateAdd("m",-1,"2000-6-18")=2000-05-18
==========================DateDiff函数解释========================== DateDiff(I,D1,D2[,FW[,FY]]) 计算两个日期之间的期间? I:设定两个日期之间的期间计算之单位。譬如>I="m"表示计算的单位为月。>I的设定值如: yyyy>Year年 qQuarter季 mMonth月 dDay日 wWeekday星期 hHour时 nMinute分·[这里应该用n代表,很多书说m其实是错的]· sSecond秒 D1,D2:计算期间的两个日期表达式,若>date1较早,则两个日期之间的期间结果为正值;若>date2较早,则结果为负值。 FW:设定每周第一天为星期几,若未设定表示为星期天。>FW的设定值如下: 0使用>API的设定值。 1星期天 2星期一 3星期二 4星期三 5星期四 6星期五 7星期六 FY:设定一年的第一周,若未设定则表示一月一日那一周为一年的第一周。>FY的设定值如下: 1一月一日那一周为一年的第一周 2至少包括四天的第一周为一年的第一周 3包括七天的第一周为一年的第一周 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|