dec是几月(dec是几月份的缩写)

Mark wiens

发布时间:2024-04-28

日期处理全全全全全全攻略!!!

dec是几月(dec是几月份的缩写)

 

摘要在日常应用中经常会需要对日期数据进行处理,本文对VBA中的日期相关处理内容进行了整理,包括对日期数据类型的介绍、VBA内置的日期相关函数以及另外一些作为补充的自定义函数等希望通过本文能够让大家对日期数据处理方面的知识有一个全面的梳理。

正文在日常应用中经常会需要对日期数据进行处理,本文对VBA中的日期相关处理内容进行了整理,包括对日期数据类型的介绍、VBA内置的日期相关函数以及另外一些作为补充的自定义函数等希望通过本文能够让大家对日期数据处理方面的知识有一个全面的梳理。

日期单独作为一种数据类型,使用8个字节进行存储,以#号作为界定符,可以包含日期和时间,有效数据范围为:100年1月1日到9999年12月31日在函数中用到的日期间隔符以下字符用于一些日期处理函数在对日期进行处理时指定日期间隔:。

符号说明yyyy年q季                                    y一年的天数m月d日w一周的天数ww周h小时n分钟s秒数设置系统日期/时间Date语句:设置系统日期示例:Date=#1999-1-1#。

Time语句:设置系统时间示例:Time=#13:01:01#Now语句:设置系统日期和时间示例:Now=#1999-1-1 13:01:01#取当前系统日期/时间Date函数:返回当前系统日期示例: =Date()   。

Time函数:返回当前系统时间示例:=Time()Now函数:返回当前系统的日期和时间示例:=Now()将其它类型数据转换为日期类型数据:CDate函数:       语法:           CDate

(expression)中文含义:    CDate(表达式)示例:          =CDate("February 12, 1969")      返回1969-2-12DateValue函数:       语法:           

DateValue(date)       中文含义:    DateValue(用字符串表达的日期)       示例:           =DateValue("Dec 30, 1991")      返回1991-12-30

TimeValue函数:       语法:           TimeValue(date)       中文含义:    TimeValue(用字符串表达的日期)注:DateValue函数只返回日期部分,TimeValue只返回时间部分,而CDate则允许同时含有日期和时间。

得到在指定日期上加减一定间隔之后的日期值DateAdd函数:语法:           DateAdd(interval, number, date)中文含义:    DateAdd(间隔字符,间隔数,原始日期)

说明:           间隔数为正数返回比原始日期更晚的日期,为负数返回比原始日期更早的日期       示例:           =DateAdd(”y”,1,Date())    返回在当前系统日期上加1年之后得到的日期

                            =DateAdd(”ww”,2,Date())  返回在当前系统日期上减去2周得到的日期得到两个指定日期间的时间间隔数目DateDiff函数语法:           

DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])中文含义:    DaateDiff(间隔字符, 日期1, 日期2, [星期几为周的第1天], [哪周为年的第1周])

得到某个日期中指定的时间部分DatePart函数:语法:           DatePart(interval,date[,firstdayofweek[,firstweekofyear]])中文含义:    DatePart(间隔字符, 指定的日期, [星期几为周的第1天, [哪周为年的第1周]])

示例:           =DatePart("m",日期变量)            返回日期中的月Year函数:返回日期中的年Month函数: 返回日期中的月Day函数:返回日期中的天Hour函数:返回日期/时间中的小时。

Minute函数:返回日期/时间中的分Second函数:返回日期/时间中的秒得到指定日期是一星期中的第几天Weekday函数       语法:           Weekday(date, [firstdayofweek

])       中文含义:    Weekday(日期值, [星期几为周的第1天])       示例:           =Weekday(#2001-1-1#, vbMonday)      ‘设星期一为周的第一天,此处返回1

得到指定日期是星期几WeekdayName函数       语法:           WeekdayName(weekday, abbreviate, firstdayofweek)       中文含义:    WeekdayName(星期中的第几天, 是否缩写, 星期几为周的第一天)

       示例:           =WeekdayName(2, False,vbMonday)    ‘设星期一为周的第一天,此处返回“星期二”                            =WeekdayName(2, True,vbMonday)     ‘设星期一为周的第一天,此处返回“周二”

注:此处返回的值和系统语言环境有关,示例中是在中文简体系统下返回的值得到将指定的日期部分进行组合后的日期DateSerial函数:语法:           DateSerial(year, month。

, day)中文含义:    DateSerial(年,月,日)TimeSerial函数:语法:           TimeSerial(hour,minute,second)中文含义:    TimeSerial(时,分,秒)

计时器Timer函数:返回从午夜开始到现在经过的秒数用来在两个时间点之间计时示例:1Dim sngStart AsSingle2sngStart=Timer()3其它要执行的代码……4MsgBox "共计用时"

 & Timer()-sngStart & "秒"得到某日期所在月第一天日期1Function FirstOfMonth(Optional DateArg As Date) As Date2IfLen(DateArg) = 

0Then DateArg = Date3    FirstOfMonth = DateSerial(Year(DateArg), Month(DateArg), 1)4EndFunction得到某日期所在月最后一天日期

1Function LastDayOfMonth(Optional DateArg As Date) As Date2IfLen(DateArg) = 0Then DateArg = Date3    LastOfMonth = 

DateSerial(Year(DateArg), Month(DateArg) + 1, 1) - 14EndFunction得到某日期所在周第一天日期1Function FirstDayOfWeek(DateArg) As 

Date2    FirstDayOfWeek = DateAdd("d",  -Weekday(Date, vbMonday) + 1, DateArg)3EndFunction得到某日期所在周最后一天日期

1Function LastDayOfWeek(DateArg) As Date2    LastDayOfWeek = DateAdd("d",  7 - Weekday(Date, vbMonday, DateArg)

3EndFunction得到指定日期所在月份的天数1FunctionDaysOfMonth(DateArg)AsInteger2DaysOfMonth = Day(DateAdd("d", -1, Format

(DateAdd("m", 1, DateArg), "yyyy-mm-1")))3EndFunction4转换为中文日期 1PublicFunction CnDate(TheDate As Date) As 

String 2Dim strNum As String 3Dim intI As Integer 4Dim strPart(1To3) As String 5 6    CnDate = Format(TheDate, 

"yyyy年m月d日") 7For intI = 1ToLen(CnDate) 8        strNum = Mid(CnDate, intI, 1) 9If strNum Like "[0-9]"

Then10If strNum = 0Then strNum = "10"11Mid(CnDate, intI, 1) = Mid("一二三四五六七八九〇", CInt(strNum), 1)12End

If13Next14    strPart(1) = Left$(CnDate, 5)15    strPart(2) = Mid$(CnDate, 6, InStr(1, CnDate, "月") - 

5)16    strPart(3) = Mid$(CnDate, InStr(1, CnDate, "月") + 1)17IfLen(strPart(2)) > 2Then strPart(2) = 

"十" & Mid$(strPart(2), 2)18IfLen(strPart(3)) > 2Then19        strPart(3) = Left$(strPart(3), 1) & "十"

 & Mid$(strPart(3), 2)20IfLeft$(strPart(3), 1) = "一"Then strPart(3) = Mid$(strPart(3), 2)21EndIf22    strPart(

3) = Replace(strPart(3), "十〇", "十")23    CnDate = strPart(1) & strPart(2) & strPart(3)24EndFunction对日期的格式化处理

Format函数:       语法:           Format(expression[, format[, firstdayofweek[, firstweekofyear]]])       中文含义:    Format(表达式[, 格式字符串[, 星期几为周的第1天[, 哪周为年的第1周]]])

预定义的格式下表显示了“日期/时间”数据类型的预定义格式字符串格式字符串说明Genaral   Date常规日期    (默认值)如果值只是一个日期,则不显示时间;如果值只是一个时间,则不显示日期该设置是“短日期”与“长时间”设置的组合。

  示例:4/3/93,05:34:00 PM 和 4/3/93 05:34:00 PMLong Date长日期  与   Windows 区域设置中的“长日期”设置相同 示例:1993 年 4 月 3 日,星期六。

Medium Date中日期  示例:93   年 4 月 3 日Short Date短日期  与   Windows 区域设置中的“短日期”设置相同 示例:4/3/93注意: “短日期”设置假设 00-1-1 和 29-12-31 之间的日期是二十一世纪的日期(即假定年从 2000 到 2029 年)。

而   30-1-1 到 99-12-31 之间的日期假定为二十世纪的日期(即假定年从 1930 到 1999 年)Long Time长时间  与   Windows 区域设置中的“时间”选项卡上的设置相同。

示例:5:34:23 PMMedium Date中时间  示例:5:34   PMShort Time短时间  示例:17:34自定义格式可以使用下列的符号创建自定义日期及时间格式符号说明:(冒号)时间分隔符

 (分隔符:用来分隔文本或数字单元的字符)分隔符是在 Windows 区域设置中设置的/日期分隔符aaaa表示星期几的字符串(如 Windows 区域设置中所定义)示例:星期一c与“常规日期”的预定义格式相同。

d一个月中的天数,根据需要以一位或两位数表示(1 到 31)dd一个月中的天数,用两位数字表示(01 到 31)ddd星期数的前三个字母(Sun 到 Sat)dddd星期数的全称(Sunday 到 Saturday)。

ddddd与“短日期”的预定义格式相同dddddd与“长日期”的预定义格式相同w星期数(1 到 7)ww一年中的周数(1 到 53)m一年中的月份数,根据需要以一位或两位数表示(1 到 12)mm一年中的月份数,以两位数表示(01 到 12)。

mmm月份的前三个字母(Jan 到 Dec)mmmm月份的全称(January 到 December)q以一年中的季度的形式显示的日期(1 到 4)y一年中的天数(1 到 366)yy年份的最后两个数字(01 到 99)。

yyyy完整的年数(0100 到 9999)h小时,根据需要以一位或两位数表示(0 到 23)hh小时,以两位数表示(00 到 23)n分钟,根据需要以一位或两位数表示(0 到 59)nn分钟,以两位数表示(00 到 59)。

s秒,根据需要以一位或两位数表示(0 到 59)ss秒,以两位数表示(00 到 59)ttttt与“长时间”的预定义格式相同AM/PM相应地使用大写字母“AM”或“PM”的 12 小时时钟am/pm相应地使用小写字母“am”或“pm”的 12 小时时钟。

A/P相应地使用大写字母“A”或“P”的 12 小时时钟a/p相应地使用小写字母“a”或“p”的 12 小时时钟AMPM使用适当的上午/下午指示器(如 Windows 区域设置中所定义)的 24 小时时钟。

关注我的

都变瘦了扫码更多惊喜

你点的每个赞,我都认真当成了喜欢

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186