VB中关于日期函数的问题.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB中关于日期函数的问题.相关的知识,希望对你有一定的参考价值。

Dim a As StringA=Cdate(Text1.text)Text2.text=”当前日期年份为:”&year(a) 这个是我在教程里看的. a = Text1.Text
Text2.Text = "当前日期年份为:" & Year(a) 这个是我自己实验的. 这两个运行后结果都一样.我想请教下,区别在哪?为什么教程里是第一种?请高手耐心点讲下原理.我底子差,而且刚学.

个人认为:运行结果不是因为Cdate的作用强制转换成日期,而是在于year()函数Cdate就是字符串强制转换成日期型,比如text1.text="98-1",A=Cdate(Text1.text) A就等于“1998-01-01”这就是Cdate()函数的作用Year()
  功能得到日期值中的年度(有效取值1000到3000)。
  语法Year(date)
  参数date:date类型的值返回值Integer。函数执行成功时得到date参数中的年份(采用四位数字),发生错误时返回1900,如果date参数的值为NULL,则Year()函数返回NULL。用法当应用程序把有两位数字表示年份的字符串转换成日期时,PowerBuilder根据下述规则选择世纪:如果年份值在00到49之间,PowerBuilder将年份中的世纪(前两位数字)当作20;如果年份值在50到99之间,PowerBuilder将年份中的世纪(前两位数字)当作19。比如,字符串"20-10-25"被PowerBuilder转换为2020-10-25;字符串"98-10-25"被PowerBuilder转换为1998-10-25。因此,如果应用程序中需要指定1950年之前的日期,应该使用四位数字表示年份,以避免引起歧义。PowerBuilder能够处理的年份从1000到3000之间。   个人观点,仅供参考!
参考技术A Cdate就是字符串强制转换成日期型。因为VB具有自动转换数据类型,所以两段代码的效果得出来都是一样如果按严谨的话,当然是第一段代码比较严谨一点了。

关于vb 中的日期时间函数

我需要日期时间函数的详细教程

date、time、……dateadd、datediff

关于日期函数的加减和返回日期间隔……

文字教程或者视频教程都可以

老师上课讲的时候没听懂 尤其是加减和日期间隔

课本上讲的也不全面
1楼的兄弟

没有 dateadd datediff
的教程啊

DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])

DateDiff 函数语法中有下列命名参数:

部分 描述
interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。
Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。

设置

interval 参数的设定值如下:

设置 描述
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒

firstdayofweek 参数的设定值如下:

常数 值 描述
vbUseSystem 0 使用 NLS API 设置。
vbSunday 1 星期日(缺省值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

常数 值 描述
vbUseSystem 0 用 NLS API 设置。
vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。
vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。
vbFirstFullWeek 3 从第一个无跨年度的星期开始。

说明

DateDiff 函数可用来决定两个日期之间所指定的时间间隔数目。例如,可以使用 DateDiff 来计算两个日期之间相隔几日,或计算从今天起到年底还有多少个星期。

为了计算 date1 与 date2 相差的日数,可以使用“一年的日数”(y) 或“日”(d)。当 interval 是“一周的日数”(w) 时,DateDiff 返回两日期间的周数。如果 date1 是星期一,DateDiff 计算到 date2 为止的星期一的个数。这个数包含 date2 但不包含 date1。不过,如果 interval 是“周”(ww),则 DateDiff 函数返回两日期间的“日历周”数。由计算 date1 与 date2 之间星期日的个数而得。如果 date2 刚好是星期日,则 date2 也会被加进 DateDiff 的计数结果中;但不论 date1 是否为星期日,都不将它算进去。

如果 date1 比 date2 来得晚,则 DateDiff 函数的返回值为负数。

firstdayofweek 参数会影响使用时间间隔符号 “W” 或 “WW” 计算的结果。

如果 date1 或 date2 是日期文字,则指定的年份成为该日期的固定部分。但是,如果 date1 或 date2 用双引号 (" ") 括起来,且年份略而不提,则在每次计算表达式 date1 或 date2 时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码。

在计算 12 月 31 日和来年的 1 月 1 日的年份差时,DateDiff 返回 1 表示相差一个年份,虽然实际上只相差一天而已。

DateAdd(interval, number, date)

DateAdd 函数语法中有下列命名参数:

部分 描述
interval 必要。字符串表达式,是所要加上去的时间间隔。
number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。
date 必要。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。

设置

interval 参数具有以下设定值:

设置 描述
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒

说明

可以使用 DateAdd 函数对日期加上或减去指定的时间间隔。例如,可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。

为了对 date 加上“日”,可以使用“一年的日数” (“y”),“日” (”d”) 或“一周的日数” (”w”)。

DateAdd 函数将不返回有效日期。在以下实例中将 1 月31 日加上一个月:

DateAdd(m, 1, 31-Jan-95)

上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。如果 date 是 1996 年 1 月 31 日,则由于 1996 年是闰年,返回值是 1996 年 2 月 29 日。

如果计算的日期超前 100 年(减去的年度超过 date 中的年份),就会导致错误发生。

如果 number 不是一个 Long 值,则在计算时取最接近的整数值来计算。

注意 DateAdd 返回值的格式由 Control Panel设置决定,而不是由传递到date 参数的格式决定。
参考技术A PS:要看dateadd dateiff,就看专题
http://flydoos.blog.163.com/blog/static/119756040201011515321670/edit/

贴太多的话不好~~~~

VB 日期时间函数

1. Year(X),Month(X),Day(X):取出年,月,日
[格式]:
P=Year(X) 取出X"年"部分的数值
P=Month(X) 取出X"月"部分的数值
P=Day(X) 取出X"日"部分的数值
[说明]:Year返回的是公元年,若X里只有时间,没有日期,则日期视为#1899/12/30#

2. Hour,Minute,Second函数:取出时,分,或秒
[格式]:
P=Hour(X) 取出X"时"部分的数值
P=Minute(X) 取出X"分"部分的数值
P=Second(X) 取出X"秒"部分的数值
[说明]:Hour的返回值是0---23之间
[范例]:
X=10:34:23
P=Hour(X)
Q=Minute(X)
R=Second(X)
则输出结果:P=10,Q=34,R=23
3. DateSerial函数:合并年,月,日成为日期
[格式]:DateSerial(Y,M,D) 其中Y是年份,M为月份,D为日期
[说明]:
(1) M值若大于12,则月份从12月起向后推算M-12个月;若小于1,则月份从1月起向后推算1-M个月。
(2) 若日期D大于当月的日数,则日期从当月的日数起,向后推算D-当月日数;若小于1,则日期从1日起向前推算1-D日。
[范例]:
P=DateSerial(2000,02,02)
则结果为P=2000/02/02

4.TimeSerial函数:合并时,分,秒成为时间
[格式]:P=TimeSerial(H,M,S) 其中H为小时数,M为分钟数,S为秒数
[说明]:推算原理同上面的DateSerial
[范例]:
P=TimeSerial(6,32,45) 结果为:P=6:32:45

5.Date,Time,Now函数:读取系统的日期时间
[格式]:
P=Date()
P=Time()
P=Now()
[说明]:这三个函数都无参数
[范例]:若当前时间为2003年8月29日晚上19点26分45秒,则
P=Now() 结果为:P=2003-08-29 19:26:45

6.VB日期加减函数DateAdd

语法

DateAdd(interval, number, date)

返回包含一个日期类型的数据

interval参数具有以下设定值:

yyyy 年

q 季

m 月

y 一年的日数

d 日

w 一周的日数

ww 周

h 时

n 分钟

s 秒

可以使用 DateAdd 函数对日期加上或减去指定的时间间隔。例如,可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。

为了对 date 加上“日”,可以使用“一年的日数” (“y”),“日” (”d”) 或“一周的日数” (”w”)。

DateAdd 函数将不返回有效日期。在以下实例中将 1 月31 日加上一个月

DateAdd(m, 1, 31-Jan-95)

用法

DateAdd("d", 7, Now) 现在日期加7天

PS:

说明
可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用 DateAdd 从当天算起 30 天以后的日期或从现在算起 45 分钟以后的时间。要向 date 添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。

DateAdd 函数不会返回无效日期。如下示例将 95 年 1 月 31 日加上一个月:

NewDate = DateAdd("m", 1, "31-Jan-95")
在这个示例中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 为 96 年 1 月 31 日,则返回 96 年 2 月 29 日,这是因为 1996 是闰年。

如果计算的日期是在公元 100 年之前,则会产生错误。

如果 number 不是 Long 型值,则在计算前四舍五入为最接近的整数。

参考资料:http://flydoos.blog.163.com/blog/static/119756040201011514049513/edit/

参考技术B 日期时间函数:
  在Visual
FoxPro(VFP)中,日期时间函数是处理日期型或日期时间型数据的函数。其自变量为日期型表达式dExp或日期时间型表达式tExp。
  类型:
  1.系统日期函数DATE(
)
  【格式】DATE()
  【功能】返回当前系统日期,此日期由Windows系统设置。函数值为D型。
  2.系统时间函数TIME(
)
  【格式】TIME([<nExp>])
  【功能】返回当前系统时间,时间显示格式为hh:mm:ss。若选择了nExp
,则不管为何值,返回的系统时间还包括秒的小数部分,精确至小数点后两位。函数值为C型。
  3.日期函数DAY(
)
  【格式】DAY(<dExp>)
  【功能】返回dExp式中的天数。函数值为N型
  4.星期函数DOW(
)、CDOW(
)
  【格式】DOW(<dExp>)
  CDOW(<dExp>)
  【功能】DOW(
)函数返回dExp式中星期的数值,用1~7表示星期日~星期六。函数值为N型。CDOW(
)函数返回dExp式中星期的英文名称。函数值为C型。
  5.月份函数MONTH(
)、CMONTH(
)
  【格式】MONTH(<dExp>)
  CMONTH(<dExp>)
  【功能】MONTH(
)函数返回dExp式中月份数。函数值为N型。CMONTH(
)函数则返回月份的英文名。函数值为C型。
  6.年份函数YEAR(
)
  【格式】YEAR(<dExp>)
  【功能】函数返回dExp式中年份值。函数值为N型。
参考技术C 这个···date time minute··这些时间函数一楼已经讲的蛮清楚了···我就补充下时间的加减好了
一个简单的方法···直接把日期用date格式表示后就可以直接加减的,比如说
Private Sub Command1_Click()
a = #4/1/2010# - #9/15/2009#
Print a
End Sub
你要加减固定时间间隔的也可以的,比如说:
Private Sub Command1_Click()
a = #4/1/2010# + 4
Print a
End Sub

我试验过无误了··呵呵··
参考技术D 查找一下葛军的VB视频教程吧。

以上是关于VB中关于日期函数的问题.的主要内容,如果未能解决你的问题,请参考以下文章

excel中关于星期的函数。

关于vb 中的日期时间函数

在SQL-Server中关于日期的数据类型都有哪些?

SQL 日期相减(间隔)datediff函数

VB里面算两个日期之间相隔的天数用哪个函数

vb如何判断当天是不是是指定日期