已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VBA日期的加减函数:DateAdd 函数返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔。语法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 函数示例本示例先取得一个日期,再用 DateAdd 函数显示未来数月后的日期。 Dim FirstDate As Date 声明变量。Dim IntervalType As StringDim Number As IntegerDim MsgIntervalType = m m指定以“月份”作为间隔。FirstDate = InputBox(Enter a date)Number = InputBox(Enter number of months to add)Msg = New date: & DateAdd(IntervalType, Number, FirstDate)MsgBox MsgDatedif函数帮助 DATEDIF计算两个日期之间的天数、月数或年数。提供此函数是为了与 Lotus 1-2-3 兼容。语法DATEDIF(start_date,end_date,unit)Start_date 为一个日期,它代表时间段内的第一个日期或起始日期。日期有多种输入方法:带引号的文本串(例如 2001/1/30)、系列数(例如,如果使用 1900 日期系统则 36921 代表 2001 年 1 月 30 日)或其他公式或函数的结果(例如,DATEVALUE(2001/1/30))。有关日期系列数的详细信息,请参阅 NOW。End_date 为一个日期,它代表时间段内的最后一个日期或结束日期。Unit 为所需信息的返回类型。Unit返回Y 时间段中的整年数。M 时间段中的整月数。D 时间段中的天数。MD start_date 与 end_date 日期中天数的差。忽略日期中的月和年。YM start_date 与 end_date 日期中月数的差。忽略日期中的日和年。YD start_date 与 end_date 日期中天数的差。忽略日期中的年。说明 Microsoft Excel 按顺序的系列数保存日期,这样就可以对其进行计算。如果工作簿使用 1900 日期系统,则 Excel 会将 1900 年 1 月 1 日保存为系列数 1。而如果工作簿使用 1904 日期系统,则 Excel 会将 1904 年 1 月 1 日保存为系列数 0,(而将 1904 年 1 月 2 日保存为系列数 1)。例如,在 1900 日期系统中 Excel 将 1998 年 1 月 1 日保存为系列数 35796,因为该日期距离 1900 年 1 月 1 日为 35795 天。请查阅 Microsoft Excel 如何存储日期和时间。Excel for Windows 和 Excel for Macintosh 使用不同的默认日期系统。有关详细信息,请参阅 NOW。 示例DATEDIF(2001/1/1,2003/1/1,Y) 等于 2,即时间段中有两个整年。DATEDIF(2001/6/1,2002/8/15,D) 等于 440,即在 2001 年 6 月 1 日和 2002 年 8 月 15 日之间有 440 天。DATEDIF(2001/6/1,2002/8/15,YD) 等于 75,即在 6 月 1 日与 8 月 15 日之间有 75 天,忽略日期中的年。DATEDIF(2001/6/1,2002/8/15,MD) 等于 14,即开始日期 1 和结束日期 15 之间的差,忽略日期中的年和月。纵观Excel日期函数对日期的运算规则得出以下理解(比如Edate、Datedif等都是遵循这个规则的):先理解“月末”指某月的最后一天再理解“整月”即不是按30天也不是按29天等来算,这个是一个变动的概念。 引用:由m月d日至m+1月d日,若m+1月没有d日,则取m+1月的“月末”算一个“整月”。反之,倒推回来,由m月d日至m-1月d日,若m-1月没有d日,则取m-1月的月末算一个“整月”例子:2006-1-2831日,往后推1个月得到的都是2-28,其中2006-1-28遵循了m+1=2月d=28日的规则,而2006-1-2931则遵循了“取月末”的规则,即因为2006年的m+1=2月没有29、30、31日,则取其月末。用=Edate(star_date,1)验证上述规则;用Datedif(star_date,2006-2-28,m)同样能验证这个规则。即从2006-1-2831日至2006-2-28的Datedif(,m)都算1个“整月”。获取给定日期的当月第一天Private Function getFirstDayOfMonth(ByVal D As Date) As Date getFirstDayOfMonth = CDate(Year(D) & - & Month(D) & -1)End Function获取给定日期的当月最后一天Private Function getLastDayOfMonth(ByVal D As Date) As Date Dim dteFirstDayOfNextMonth As Date dteFirstDayOfNextMonth = DateAdd(m, 1, getFirstDayOfMonth(D) getLastDayOfMonth = DateAdd(d, -1, dteFirstDayOfNextMonth)End Function获取给定日期的当年第一天Private Function getFirstDayOfYear(ByVal D As Date) As Date getFirstDayOfYear = CDate(Year(D) & -1-1)End Function获取给定日期的当年最后一天Private Function getLastDayOfYear(ByVal D As Date) As Date getLastDayOfYear = CDate(Year(D) & -12-31)End Function本月第一天星期几 A22.Value = Weekday(A21) b = A22.Value Select Case b Case vbSunday A23 = Year(B19) & 年 & Month(B19) & 月1日是星期日 Case vbMonday A23 = Year(B19) & 年 & Month(B19) & 月1日是星期一 Case vbTuesday A23 = Year(B19) & 年 & Month(B19) & 月1日是星期二 Case vbWednesday A23 = Year(B19) & 年 & Month(B19) & 月1日是星期三 Case vbThursday A23 = Year(B19) & 年 & Month(B19) & 月1日是星期四 Case vbFriday A23 = Year(B19) & 年 & Month(B19) & 月1日是星期五 Case vbSaturday A23 = Year(B19) & 年 & Month(B19) & 月1日是星期六 End Select得到本月第一周周一的日期 Select Case b Case vbSunday B21.Value = DateAdd(d, 1, A21) Case Else B21.Value = DateAdd(d, 9 - b, A21) End Select获取当天为今年的第几周使用 DatePart(ww, Date() 来返回周DatePart 函数返回一个包含已知日期的指定时间部分的 Variant (Integer)。语法DatePart(interval, date,firstdayofweek, firstweekofyear)DatePart 函数语法中有下列命名参数:部分 描述 interval 必要。字符串表达式,是要返回的时间间隔。 date 必要。要计算的 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 星期六 firstweekofyear 参数的设定值如下:常数 值 描述 vbUseSystem 0 使用 NLS API 设置。 vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。 vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。 vbFirstFullWeek 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中专专业英语试卷及答案
- 主机房火灾事故现场处置方案
- 华为秋招真题及答案
- 国家铁路集团校招笔试题及答案
- 国家融资担保基金校招面试题及答案
- 光学工程师招聘题库及答案
- 工业自动化招聘题库及答案
- 格兰仕校招面试题及答案
- 公务员考试省考辽宁试题及答案
- 2025广东东莞滨海湾新区管理委员会招聘编外聘用人员23人参考题库含答案详解(黄金题型)
- 2025中国华能集团有限公司校园招聘1000人笔试历年备考题库附带答案详解2套试卷
- 涉密人员岗前培训
- 2025年下半年中国中化集团限公司招聘易考易错模拟试题(共500题)试卷后附参考答案
- 市政道路施工方案投标文件(技术方案)
- 水利水电工程单元工程施工质量验收评定表及填表说明
- 基层安监员培训课件
- 信息技术说课公开课一等奖市赛课获奖课件
- 工程整改通知单问题整改通知单
- 2023年江苏无锡市江阴市江南水务股份有限公司招聘笔试题库及答案解析
- 初中数学思维能力的培养
- 工程质量保修期满确认书
评论
0/150
提交评论