VBDATEDIFF(vbdatediff函数怎么用)
vb中datediff怎么用
DateDiff函数
返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。
语法 ?
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函数语法中有下列命名参数: ?
描述 ?
interval必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔 ?
Date1,Date2必要;Variant (Date)。计算中要用到的两个日期。 ?
Firstdayofweek可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。 ?
firstweekofyear可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。 ?
设置:
说明
DateDiff?函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用?DateDiff?计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。
要计算?date1?和?date2?相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当?interval?为“一周的日数”(“w”)时,DateDiff?返回两个日期之间的星期数。如果?date1?是星期一,则DateDiff?计算到?date2?之前星期一的数目。此结果包含?date2?而不包含?date1。如果?interval?是“周”(“ww”),则?DateDiff?函数返回日历表中两个日期之间的星期数。函数计算?date1?和?date2之间星期日的数目。如果?date2?是星期日,DateDiff?将计算?date2,但即使?date1?是星期日,也不会计算?date1。
如果?date1?晚于?date2,则?DateDiff?函数返回负数。
firstdayofweek?参数会对使用“w”和“ww”间隔符号的计算产生影响。
如果?date1?或?date2?是日期文字,则指定的年度会成为日期的固定部分。但是如果?date1?或?date2?被包括在引号 (" ") 中并且省略年份,则在代码中每次计算?date1?或?date2?表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。
在?interval?为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff?返回 1 表示相差一个年份。
VB6.0为什么使用Datediff函数时有时候老是出现即时错误'13'类型不符?
在VB6中,类似下面的声明变量的方式其实是错误的(至少是不合理的):
Dim T1,?T2,?T3,?T4,?T5,?T6,?T7,?T8,?T9,?T10 As Date
因为它相当于:
Dim T1
Dim T2
Dim T3
Dim T4
Dim T5
Dim T6
Dim T7
Dim T8
Dim T9
Dim T10 As Date
也就是说只有T10才是你预料中的Date型,而T1到T9都是默认的Variant型!
虽然说Variant型变量也可以作为DateDiff的参数(VB会自动把它转换为Date型),但是如果你文本框中输入的字符串不符合日期型规范,VB就无法把它转为Date型,只能作为字符串来处理,这样就会出现“类型不符”的出错提示了!
正确的方法应该是这样的:
Dim T1?As Date,?T2?As Date,?T3?As Date,?T4?As Date,?T5?As Date,?T6?As Date,?T7?As Date,?T8?As Date,?T9?As Date,?T10 As Date
是的,你会觉得这看起来太罗嗦了,但是,简洁的东西不一定就是对的,啰嗦意味着安全(就像你们的父母经常在你们耳朵边唠叨的一样)。
现在还有一个问题,就是假如文本框中输入的时间数据错误,那么把它直接赋值给Date型变量时会出错的,那么可以这样来处理:
If?IsDate(Form2.Text1.Text)?Then??'如果Text1输入的内容符合日期时间规范
????T1?=?CDate(Form2.Text1.Text)???'把Text1转换为Date型赋值给T1
Else???'如果不符合规范
????MsgBox?"Text1的内容错误!"???'提示并退出
????Exit?Sub
End?If
其他T2、T3……也同样处理。
补充说一句,在VB.NET中,类似Dim T1,?T2,?T3,?T4,?T5,?T6,?T7,?T8,?T9,?T10 As Date的变量声明方法则是没问题的,所有变量都会是Date型
VB 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?包括七天的第一周为一年的第一周
新建工程-添加一个timer控件
放入代码
Dim d1, d2
Private Sub Form_Load()
d1 = Now
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
d2 = Now
Debug.Print DateDiff("s", d1, d2, vbMonday, vbFirstJan1)
End Sub
这个是计算两个日期相差秒数的。
VB计算两个日期时间的间隔
DATEDIFF 函数计算指定的两个日期中第二个日期与第一个日期的时间差的日期部分。换句话说,它得出两个日期之间的间隔。结果是等于date2 - date1 的日期部分的带符号整数值。
示例代码:
Dim time1 As Date
Dim time2 As Date
Dim td as date
time1 = "2013-6-27 6:52:22"
time2 = "2013-6-28 13:52:14"
td=datediff("ss",time1,time2)
这个只可以求出相差多少秒,还需要你自己进位求出是几秒几分几小时,你可以自己百度"datediff"的用法!
vb计算一个月多少天 datediff
vb计算一个月多少天的实现代码如下:
用DateDiff函数,方法:
DateDiff("d", date1, date2)
date1为要计算天数的月的1号,如#2002-2-1#
date2为下个月的1号,如#2002-3-1#
执行函数后,值为28。
Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。
VB中datediff函数返回值是什么类型
DateDiff?函数?返回?Variant?(Long)?的值,表示两个指定日期间的时间间隔数目。
楼主你的代码写错了,?datediff里面的参数里面的b?和?label1.caption不需要双引号啊!