
第四节 日期与时间函数
一、TODAY与NOW函数
1.TODAY()函数
(1)功能说明。
返回当前日期。
(2)参数说明。
没有参数。
(3)注意事项。
括号不能省略;返回的结果与系统当前的日期相同。
(4)应用举例。
假设今天的日期是“2015/9/30”。
公式=TODAY(),公式的运算结果为“2015/9/30”。
2.NOW()函数
(1)功能说明。
返回当前日期和时间。
(2)参数说明。
没有参数。
(3)注意事项。
括号不能省略;返回的结果与系统当前的日期和时间相同。
(4)应用举例。
假设今天的日期是“2015/9/30”,时间“11:00”。
公式=NOW(),公式的运算结果为“2015/9/30 11:00”。
二、YEAR、MONTH与DAY函数
1.YEAR(serial_number)函数
(1)功能说明。
返回以系列号表示的某个日期的年份数。例如,公式=YEAR("2015/9/30")的运算结果为“2015”。
(2)参数说明。
serial_number为日期,包含要查找的年份,可以用多种日期格式,也可以是单元格引用。
(3)注意事项。
返回结果为1900到9999之间的一个整数。
2.MONTH(serial_number)函数
(1)功能说明。
返回以序列号表示的某个日期的月份数。
(2)参数说明。
serial_number表示将要计算其月份数的日期,可以用多种日期格式,也可以是单元格引用。
(3)注意事项。
返回结果介于1到12之间的一个整数。
3.DAY(serial_number)函数
(1)功能说明。
返回以序列号表示的某个日期的天数。
(2)参数说明。
serial_number表示日期,可以用多种日期格式,也可以是单元格引用。
(3)注意事项。
返回结果介于1到31之间的一个整数。
4.WEEKDAY(serial_number,return_type)函数
(1)功能说明。
返回某日期的星期数。
(2)参数说明。
serial_number是要返回日期数的日期,它有多种输入方式:带引号的文本(如“2001/02/26”)、序列号(如35825表示1998年1月30日)或其他公式或函数的结果(如DATEVALUE("2000/1/30"))。
return_type为确定返回值类型的数字。如果是数字1或省略,则1至7代表星期天到星期六;如果是数字2,则1至7代表星期一到星期天;如果是数字3,则0至6代表星期一到星期天。
三、DATE(year, month, day)函数
(1)功能说明。
将指定的年、月、日合并为完整的日期格式。
(2)参数说明。
①参数year为年份数字,我们一般使用的year介于1904到9999之间(包含这两个值),实际上,默认情况下,Microsoft Excel for Windows将使用1900日期系统,而Microsoft Excel for Macintosh将使用1904日期系统。我们通常使用前者。
②参数month为月份数字,一般介于1到12之间。实际上,如果month大于12,则month从指定年份的一月份开始累加该月份数。例如,DATE(2015,14,2)返回结果为2016年2月2日的序列号。如果month小于1,month则从指定年份的一月份开始递减该月份数,然后再加上1个月。例如,DATE(2015,-3,2)返回结果为2014年9月2日的序列号。
③参数day为天的数字,一般介于1到31之间。实际上,如果day大于指定月份的天数,则day从指定月份的第一天开始累加该天数。例如,DATE(2015,1,35)返回表示2015年2月4日的序列号。如果day小于1,则day从指定月份的第一天开始递减该天数,然后再加上1天。例如,DATE(2015,1,-15)返回表示2014年12月16日的序列号。
(3)注意事项。
显示的结果可以在设置单元格格式中自行改动。
(4)应用举例。
【例2-8】统计2015年节假日的具体日期及星期数。
首先利用DATE函数将日期进行合并,得到具体日期,如图2-10所示,然后利用WEEKDAY函数计算出星期数,最终结果如图2-11所示。

图2-10 节假日名称

图2-11 节假日日期
四、DATEVALUE(day_text)函数
(1)功能说明。
用于返回某一指定日期的系列编号。
(2)参数说明。
参数date_text是以文本格式表示的日期。在使用Microsoft Excel for Windows中的默认日期系统时,参数date_text必须表示1900年1月1日到9999年12月31日之间的某个日期。如果参数date_text的值超出上述范围,则函数DATEVALUE返回错误值#VALUE!。
(3)注意事项。
使用时只能手动输入或复制,不能引用(特别注意)。如果省略参数date_text中的年份部分,则函数DATEVALUE会使用计算机系统内置时钟的当前年份。参数date_text中的时间信息将被忽略。
(4)应用举例。
计算2015年10月20日至2070年8月15日有多少天,结果如图2-12所示。

图2-12 计算结果
【例2-9】根据员工出生日期与参加工作日期计算年龄与工龄(精确到月)。
在图2-13中,E5单元格的公式为:

图2-13 计算结果
=IF($F$2>DATE(YEAR($F$2),MONTH(C5),DAY(C5)),YEAR($F$2)-YEAR(C5),YEAR($F$2)-YEAR(C5)-1)
F5单元格的公式为:
=IF($F$2>DATE(YEAR($F$2),MONTH(D5),DAY(D5)),YEAR($F$2)-YEAR(D5),YEAR($F$2)-YEAR(D5)-1)
G5单元格的公式为:
=IF($F$2>=DATE(YEAR($F$2),MONTH(D5),DAY(D5)),INT(($F$2-DATE(YEAR($F$2),MONTH(D5),DAY(D5)))/30),INT(($F$2-DATE(YEAR($F$2)-1,MONTH(D5),DAY(D5)))/30))