分享

VB 时间处理 日期处理函数

 康and豪图书馆 2013-08-15
VB 时间处理 日期处理函数

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#)

函数名
函数功能
语法结构

DATE 函数
返回包含系统日期的VARIANT(DATE) 。
DATE

DATEADD函数
返回包含一个日期的VARIANT(DATE) ,这个日期还加上了一段时间间隔。
DateAdd(interval,number,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, 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

-------------------------------------------------------

 

  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(日期表达式)
返回 到 12 之间的整数,表示一年中的某月。
比如:Month("00-6-15") 6

5.DateAdd(interval, number, date)
返回一个日期,这一日期加上了一段时间间隔。可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。

DataAdd 函数参数 参数 说明 

interval 字符串表达式,是所要加上去的时间间隔的单位。 
number 数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。 
date 日期表达式,这一日期还加上了时间间隔。 


interval 参数设定值 值 说明 
yyyy 年 
季 
月 
一年的日数 
日 
一周的日数 
ww 周 
时 
分钟 
秒 

比如:
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 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
n Minute 分       ·[这里应该用n代表,很多书说m其实是错的]·
s Second 秒
D1 ,D2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。
FW :设定每周第一天为星期几, 若未设定表示为星期天。 >FW 的设定值如下:
0 使用 >API 的设定值。
1 星期天
2 星期一
3 星期二
4 星期三
5 星期四
6 星期五
7 星期六
FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:
0 使用 >API 的设定值。
1 一月一日那一周为一年的第一周
2 至少包括四天的第一周为一年的第一周
3 包括七天的第一周为一年的第一周

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多