目录

# DATEDIF

该函数可返回「起始日期」与「终止日期」之间的整数天数、月份数或年数。

This function is available since LibreOfficeDev 3.6.

### 语法

DATEDIF(Start date; End date; Interval)

「起始日期」是开始计算的日期。

「终止日期」是计算终止的日期。终止日期必须晚于起始日期。

Interval is a string that determines how the difference will be calculated. Possible values are "d", "m", "y", "ym", "md" or "yd" regardless of the current language settings.

将日期作为公式一部分输入时，日期分隔符 (斜杠与短横线) 会被理解为算术运算符。因此，按此格式输入的日期无法正确识别为日期，导致错误计算。要保持日期作为公式一部分，请使用 DATE 函数，例如「DATE(1954;7;20)」或将日期放在引号内，使用 ISO 8601 标记法，例如「1954-07-20」。请避免使用受区域影响的日期格式，例如「07/20/54」，在其他区域设置下加载文档，会导致计算错误。

支持 ISO 8601 日期时间格式 (及其分隔符扩展格式) 的无歧义转换。如果出现「#VALUE!」错误，请在「LibreOfficeDev - 偏好设置工具 - 选项 - LibreOfficeDev Calc - 公式」「详细计算设置」区域的「详细信息...」 按钮，「文本转换为数字」列表框，取消选择「生成 #VALUE! 错误」。

「间隔单位」有效值 | 返回值
--- | ---
"d" | 「起始日期」与「终止日期」之间的整数天数。
"m" | 「起始日期」与「终止日期」之间的整数月份数。
"y" | 「起始日期」与「终止日期」之间的整数年数。
"ym" | 「起始日期」与「终止日期」之间的整数月份数，忽略年数。
"md" | 「起始日期」与「终止日期」之间的整数天数，忽略年月数。
"yd" | 「起始日期」与「终止日期」之间的整数天数，忽略年数。

### 示例

生日计算。某人生于 1974-04-17。今天日期为 2012-06-13。

「=DATEDIF("1974-04-17";"2012-06-13";"y")」得到 38。

「=DATEDIF("1974-04-17";"2012-06-13";"ym")」得到 1。

「=DATEDIF("1974-04-17";"2012-06-13";"md")」得到 27。

所以他已经 38 岁 1 个月零 27 天大了。

「=DATEDIF(DATE(1974,4,17);"2012-06-13";"m")」得到 457, 他已存活 457 个月。

「=DATEDIF("1974-04-17";"2012-06-13";"d")」得到 13937，他已存活 13937 天。

「=DATEDIF("1974-04-17";DATE(2012;06;13);"yd")」得到 57, 他的生日是 57 天前。

#### Technical information

此功能是「用于 Office 应用程序的开放文档格式 (OpenDocument)」标准 1.2 版本的一部分。(ISO/IEC 26300:2-2015)

相关主题

DATEDIF wiki page.

Date & Time Functions

DATE

DATEDIF

DATEVALUE

DAY

DAYS

DAYS360

DAYSINMONTH

DAYSINYEAR

EASTERSUNDAY

EDATE

EOMONTH

HOUR

ISLEAPYEAR

ISOWEEKNUM

MINUTE

MONTH

MONTHS

NETWORKDAYS

NETWORKDAYS.INTL

NOW

SECOND

TIME

TIMEVALUE

TODAY

WEEKDAY

WEEKNUM

WEEKNUM_EXCEL2003

WEEKNUM_OOO

WEEKS

WEEKSINYEAR

WORKDAY

WORKDAY.INTL

YEAR

YEARFRAC

YEARS

请支持我们!