母亲节是一个感谢母亲的节日。世界各国母亲节的日期不尽相同。
母亲节的具体日期是哪天呢?中国母亲节日期是每年5月份的第2个星期日是母亲节。
2012年母亲节是哪天呢?根据5月份的第2个星期日推算出来,2012年母亲节的具体日期是:2012年5月13日。
尽管用系统自带工具日历一类的,很容易就能查看到2012母亲节是那一天。但对我们excel发烧友来说,使用excel的日期函数也是很容易获取到2012年母亲节日期的。
以在excel中计算2012母亲节为例,来说明这类有年、月、周、天组合的特殊日期的计算方法。明白了方法,类似母亲节、父亲节这一类特殊日期就只是修改一下数据源的问题。
使用内置函数获取2012母亲节具体日期的方法:B1:B4单元格分别是对应的2012年5月第2周的第1天,即为母亲节的具体日期。
我们在B5单元格输入公式:=DATE(B1,B2,1)+B4-WEEKDAY(DATE(B1,B2,1))+(B3-(B4>=WEEKDAY(DATE(B1,B2,1))))*7
除了上面使用excel内置函数完成以外,还可以自己编写一个自定义函数来实现:按ALT+F11,打开VBE编辑器,插入——模块,复制下面的代码,返回工作表B5单元格输入:=日期(B1,B2,B3,B4),就可以得到2012年母亲节的具体日期是:2012-5-13。
这个自定义函数表示在每年的第几个星期的周几。
Function 日期(Optional ByVal Yea As Integer = 0, Optional ByVal Mon As Integer = 0, _
Optional ByVal Num As Integer = 0, Optional ByVal Wee As Integer = 0) As Date
'定义四个参数:Yea为年,Mon为月,Num为周次,Wee为周几。
'参数省略时默认为0
If Yea = 0 Then Yea = Year(Now()) '如果参数为0,就默认为当年
If Mon = 0 Then Mon = Month(Now()) '如果参数为0,就默认为当月
If Num = 0 Then Num = 1 '如果参数为0,就默认为第一周
If Wee = 0 Then Wee = 7 '如果参数为0,就默认为周日
日期 = Num * 7 - 7 + Wee Mod 7 + 1 - Int((Wee Mod 7 + 1 - DateSerial(Yea, Mon, 1)) / 7) * 7
End Function