Office中国论坛/Access中国论坛

标题: 时间函数汇总 [打印本页]

作者: 一点通    时间: 2005-11-12 18:05
标题: 时间函数汇总
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 函数语法中有下列命名参数:

部分                     描述

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 参数的格式决定。

事例:

  DateAdd("d",10,"2000-6-18")

结果是: 2000-06-28

  DateAdd("m",-1,"2000-6-18")

结果是: 2000-05-18

6、DateDiff 函数

        返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。

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

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

部分 描述

interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔

Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。

Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。

firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。

interval 参数的设定值同DateAdd函数,请参考上面的例子。

例:DateDiff("d",#2004-01-06#,#2004-01-07#)     1

7、DatePart 函数

        返回一个包含已知日期的指定时间部分的 Variant (Integer)。

语法 DatePart(interval, date[,firstdayofweek[, firstweekofyear]])

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

部分 描述

interval 必要。字符串表达式,是要返回的时间间隔。

date 必要。要计算的 Variant (Date) 值。

Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。

firstweekofyear 可选。指定一年第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。

设置

interval 参数的设定值同DateAdd()

DatePart 函数示例本示例先取得一个日期,然后使用 DatePart 函数显示该日期是发生在该年的哪一季。

Dim TheDate As Date    ' 声明变量。

Dim Msg

    T
作者: 一点通    时间: 2005-11-12 19:43
12、Time 函数

返回一个指明当前系统时间的 Variant (Date)。






语法





Time






示例






使用 Time 函数返回系统当前的时间。




  1. Dim MyTime
复制代码
  1. MyTime = Time    '
复制代码
返回系统当前的时间







说明





为了设置系统时间,请使用 Time 语句。






设置系统时间。






语法





Time = time





必要的 time 参数,可以是任何能够表示时刻的数值表达式字符串表达式或它们的组合。






说明





如果 time 是一字符串,则 Time 会试着根据系统指定的时间,利用时间分隔符将其转换成一个时间。如果无法转换成一个有效的时间,则会导致错误发生。






13、FormatDateTime函数



描述





返回一个日期或时间格式的表达式。






语法





FormatDateTime(Date[,NamedFormat])






FormatDateTime函数语法有如下几部分:






部分      描述






Date   必需的。要被格式化的日期表达式






NamedFormat可选的。数字值,表示日期/时间所使用的格式。如果忽略该值,则使用vbGeneralDate






设置值





NamedFormat参数的设置值如下:






常数     值      描述






vbGeneralDate  0  显示日期和/或时间。如果有日期部分,则用短日期格式显示。如果有时间部分,则用长时间格式显示。如果都有,两部分都显示。






VbLongDate  1  用计算机区域设置值中指定的长日期格式显示日期。






VbShortDate  2  用计算机区域设置值中指定的短日期格式显示日期。






<F
作者: 一点通    时间: 2005-11-12 19:43
<RE><H1 auto 0cm?>18、用户自定义日期/时间格式 (Format 函数)下面标识一些可用来创建用户自定义日期/时间格式的字符:字符     说明(:)    时间分隔符。在一些区域,可能用其他符号来当时间分隔符。格式化时间值时,时间分隔符可以分隔时、分、秒。时间分隔符的真正字符在格式输出时取决于系统的设置。(/)    日期分隔符。在一些区域,可能用其他符号来当日期分隔符。格式化日期数值时,日期分隔符可以分隔年、月、日。日期分隔符的真正字符在格式输出时取决于系统设置。 c    以
  1. ddddd
复制代码
来显示日期并且以
  1. ttttt
复制代码
来显示时间。如果想显示的数值无小数部分,则只显示日期部分,如果想显示的数值无整数部分,则只显示时间部分。 d    以没有前导零的数字来显示日 (1–31)。 dd   以有前导零的数字来显示日 (01–31)。 ddd  以简写来表示日 (Sun–Sat) dddd  以全称来表示日 (Sunday–Saturday) ddddd  以完整日期表示法显示(包括年、月、日),日期的显示要依系统的短日期格式设置而定。 dddddd  以完整日期表示法显示日期系列数(包括年、月、日),日期的显示要依系统识别的长日期格式而定。缺省的长日期格式为
  1. mmmm
复制代码
  1. dd, yyyy
复制代码
。 aaaa  与dddd 一样,它只是该字符串的本地化版本。 w  将一周中的日期以数值表示(1 表星期日~ 7表星期六)。 ww  将一年中的星期以数值表示 (1–54)。 m  以没有前导零的数字来显示月 (1–12)。如果
  1. m
复制代码
是直接跟在
  1. h
复制代码
  1. hh
复制代码
之后,那么显示的将是分而不是月。 mm  以有前导零的数字来显示月 (01 – 12)。如果
  1. m
复制代码
是直接跟在
  1. h
复制代码
  1. hh
复制代码
之后,那么显示的将是分而不是月。 mmm  以简写来表示月 (Jan–Dec)。 mmmm  以全称来表示月 (January–December)。 oooo  与mmmm一样,它只是该字符串的本地化版本。 <FONT face=宋体>q  将一年
作者: qq12300    时间: 2005-11-27 23:10
[em01][em02][em03][em04][em06][em07][em08][em09][em10][em12][em13]
作者: 天命兔翁    时间: 2005-12-24 19:29
名副其实的“汇总”啊,谢谢楼主,收下了。[em17][em01][em17][em01]
作者: 一点通    时间: 2005-12-26 04:10
如何将文本型:2003.08.04 转换为日期型:2003-08-04


cdate(replace("2003.08.04",".","-"))


显示当前日期在该年中所处的星期号


=Format(Now(), "ww")


ww 为 1 到 53。


显示日期字段值的四位年份值。


=DatePart("yyyy", [订购日期])





显示日期字段值前 10 天的日期值。


=DateAdd("y", -10, [应付日期])


显示日期字段值前一个月的日期值。


=DateAdd("m",-1,Date())


显示日期1和日期2之间相差的天数。


=DateDiff("d", [订购日期], [发货日期])





从今天算起到三个月后的日期之间的记录。


Betweeb date() and adddate(3,date())


根据出生日期计算年龄(周岁)


=IIf(Month(Date())-Month([出生年月日])>-1,Year(Date())-Year([出生年月日]),Year(Date())-Year([出生年月日])-1)


日期函数示例


当天日期:=Date()


当日:=Day(date)


当月:=Month(date())


当年:=Year(date())


当季:=DatePart("q",Date())





算出每个月的天数


一法:


Dim a, b, c


a = Year(Now())


b = Month(Now())


c = Format((a & "/" & b + 1 & "/1"), "######") - Format((a & "/" & b & "/1"), "######")


二法:


DateDiff("d", Format(Date, "yyyy-mm-01"), Format(DateAdd("m", -1, Date), "yyyy-mm-01"))


DateDiff可以算出两个日期之间相差几天!


三法:


Day(DateAdd("d", -1, Format(Date, "yyyy-mm-01")))


day函数可以知道某个日期是这个月的第几天,我们把这个月的最后一天拿出来DAY一下!


应该还有更好的方法!


比如说可以定义一个数组,把每个月的日子放进去,或者说写一个函数算每一个月的天数


只要考虑一下闺年的问题就可以了!





如何得到某年每个月的第一天是星期几


Private Sub Command1_Click()
Dim i As Integer, A As Integer, B As Integer, C As String
A = InputBox("请输入年份", "某年每个月的第一天是星期几")
Form1.Cls
For i = 1 To 12
C = A & "-" & i & "-1"
B = Weekday(C)
Select Case B
Case vbSunday
Print A & "年" & i & "月1日是 星期日"
Case vbMonday
Print A & "年" & i & "月1日是 星期一"
Case vbTuesday
Print A & "年" & i & "月1日是 星期二"
Case vbWednesday
Print A &a
作者: ui    时间: 2005-12-28 17:58
谢谢分享,Very good!!!!
作者: nxjswt    时间: 2006-1-1 07:31
很好,收藏!
作者: yttzm    时间: 2006-1-6 01:32
很好,收藏!谢谢!
作者: panpan8202224    时间: 2006-1-14 01:47
太感谢一点通版主了![em01]
作者: yan0419    时间: 2006-1-19 19:13
谢谢分享,收藏中.....
作者: glw    时间: 2006-1-21 20:54
好贴,收藏了
作者: oyljl    时间: 2006-3-11 06:33
[em03]
作者: oyljl    时间: 2006-3-11 06:34
[em02]
作者: zxzx2733    时间: 2006-3-13 07:58
还有没有?
作者: zxzx2733    时间: 2006-3-13 08:02
刚刚发现,我的注册时间什么是这个?-2004年7月11日,

以前本站设置的限制较多,不好进
作者: ysgm1978g    时间: 2006-3-30 23:20
谢了
作者: bjyizhang    时间: 2006-4-3 20:03
非常感谢
作者: huzaixin    时间: 2006-4-4 19:32
谢谢!
作者: yuanrongfa    时间: 2006-6-20 21:48
顶你  就是要这个贴了

找了很久
作者: shenyi99    时间: 2006-6-24 18:39
太感谢[em02]
作者: liulubing    时间: 2006-6-29 16:41
好.就一个字.
作者: wzm25    时间: 2006-7-16 05:54
感谢!
作者: liqianwu    时间: 2006-8-16 06:09
谢谢


作者: greenclock    时间: 2006-8-16 08:20
谢谢,受益匪浅!
作者: fyp19790088    时间: 2006-8-24 07:37
谢谢,学习中
作者: 风二娘    时间: 2006-11-7 21:10
谢谢呀
作者: J1J1    时间: 2006-12-27 21:11
thanks
作者: wangwxj    时间: 2007-1-3 05:09
怎么不全啊???
作者: szlga    时间: 2007-4-30 01:18
很好,收藏了。
作者: fifi0703    时间: 2007-8-18 19:44
这样好贴不收藏都对不起自己呀!
作者: hosam    时间: 2007-8-20 21:52
谢谢分享.!!!!!!
作者: t小宝    时间: 2007-8-24 11:36
谢谢,楼主辛苦了..
作者: 阳光1121    时间: 2007-9-22 11:32
很好,收藏!谢谢!很好,收藏!谢谢!
作者: lihua0922    时间: 2007-11-10 16:27
谢谢了,000学习下了
作者: lihua0922    时间: 2007-11-12 08:11
有点时请教下
请问在表中要其显示
当天时间 =DATA()  时可以的
要其显示当月=Month(date())   要其显示当年=year(date()) 这个为什么显示1900年呀
作者: afterain    时间: 2007-11-14 11:00
又学到点东东!!!!!!!
作者: sunny-xie    时间: 2007-11-14 11:51
msgbox"收藏了"
作者: xuwenning    时间: 2007-11-27 10:14
谢谢,学习
作者: lisj    时间: 2007-12-13 21:04
太感谢一点通
作者: 小宜    时间: 2007-12-15 22:39
谢谢分享,Very good!!!!
作者: jay_0218    时间: 2008-3-25 13:53
如何计算一个月最后一天是29还是30还31
作者: qsdys    时间: 2008-3-26 15:15
谢谢分享!学习了,谢谢!
作者: hayhay    时间: 2008-8-3 19:53
感谢一点通版主
作者: 6100535    时间: 2008-12-23 10:59
看看,学一学
作者: 听雨    时间: 2009-8-9 15:49
顶,学习了,刚用这个解决了一个问题
作者: chaojianan    时间: 2009-10-23 21:11
谢谢分享,收藏了。
作者: 难得糊涂NDHT    时间: 2009-11-28 17:40
确实很详细!学习一下!
作者: shitou1ge    时间: 2009-11-30 11:07
太有用啦
作者: wang1950317    时间: 2009-12-3 18:13
真是全面啊!谢谢一点通版主!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3