繁体   English   中英

在 MS Word 字段中显示日期差异

[英]Display date difference in MS Word field

我有一份简历,希望在打开时自动更新我的年龄。 那么,我应该在 MS Word 字段中插入什么公式?

就像是:

{= {DATE} - {"01/01/1983"} }

我尝试过但无法在 Word 字段中找到等效于 Excel 的方法来从另一个时间减去白天(假设 05/18/1983 从今天 03/21/2013 开始),这在 Excel 中很容易从白天(01/01 /1900 in Excel 2013) 已被选为开始,并且每隔一天根据此参考计算,显示的详细信息仅是表示此结果的一种方式(完整日期,数字月份或其全名,甚至Excel 的简单数量),可以通过右键单击单元格并选择类别单元格格式来切换(因为 01/01/1900 是 1,那么 05/18/1983 是 30454(...还有 00/01/ 1900 是 0!))。

为了回答最初的问题,我建议这样写:

{= {DATE  \@ "YYYY"} - my_year - 1*{=OR({={DATE  \@ "MM"} < my_month};{=AND({={DATE  \@ "MM"} = my_month};{={ DATE  \@ "dd"} < my_day})})}  \* MERGEFORMAT}

牢记:

  1. 大括号 {} 是 Word 特定符号(不是普通的“字母”),应按 CTRL+F9 插入。
  2. 'my_year'、'my_month'(两次)和 'my_day':应该是数字
  3. 这篇文章很短,只建议 4 处更改(不幸的是一个月两次),这将有助于防止错误
  4. 对于初学者,这篇文章说:今天的年份减去my_year,如果今天的月份值低于my_month或两者相等并且今天的日期值低于my_day,则减去1,这样我们就不会多加一年。

MERGEFORMAT 选项对于保持正确的格式很有用。

此外,对于那些不习惯使用 Word 字段的人:

  • 右键单击大括号 {} 内的文本并选择“Toggle Field Codes”,从代码本身(文本内)或此代码的演算结果切换,但这可能不是最新的(可能是以前的结果代码也被更改了)。
  • 为确保结果是最新的,右键单击并选择“更新字段”。
  • 并确保您打开主字段中的每个字段,选择整个字段(最好选择包含它的整行),右键单击并选择“切换字段代码”(否则,某些编码错误的字段或可能返回void 表达式,可能不会被看到,并且可能会在不需要时影响以后的看到结果)。

这将适用于 05/18/1983(我更改了 1 月 1 日,即 01/01 至 18 日以避免混淆):

{= {DATE  \@ "YYYY"} - 1983 - 1*{=OR({={DATE  \@ "MM"} < 05};{=AND({={DATE  \@ "MM"} = 05};{={ DATE  \@ "dd"} < 18})})}  \* MERGEFORMAT}

这是使用 Word 域代码的更好网站之一 - http://www.addbalance.com/usersguide/fields.htm - 那里有关于如何创建 +/- 日期的示例。

以下是根据 1 月的出生月份和 1983 年的出生年份计算的方法。

{IF{DATE\\@"MM"} >= 01 { = {DATE\\@"YYYY"} – 1983 \\#"00"} { = {DATE\\@"YYYY"} – 1984 \\#"00"}}

请注意,在 1 月份的情况下,此 IF 语句将始终为真,并为您提供 =YEAR-1983。 您可以使用另一个嵌套的 IF 语句来检查当天的情况,以进一步获得更准确的信息。

我建议计算两个日期的序列号并将它们相减。 它不必太复杂:反正我们只对年数感兴趣。 年*365 + 月*31 + 日在这里应该做得很好。

对于年数,将差值除以 365。然后使用 INT 去除小数部分(而不是 ROUND,它会使您在一年中的一半大 1 岁)。

{ = INT(({ DATE \@"YYYY" }*365 + { DATE \@"MM" }*31 + { DATE \@"dd" } 
      - (my_year*365 + my_month*31 + my_day)) / 365) \# "0" }
  1. 创建文本表单字段。 将该字段命名为“出生日期”

在此处输入图片说明

  1. 使用以下代码创建字段:

{={DATE \\@ "yyyy"} — {BirthDate \\@ "yyyy"}}

我做过这样的事情:

10.2014 – 05.2020 (date1 - date2)
5 years, 8 months (difference)

我已将“10.2014”映射为书签(插入 > 书签),名称为“d1”(稍后会派上用场。“05.2020”是格式为{DATE \\@ "MM.yyyy"}的“日期”(插入 > 字段 > 日期) {DATE \\@ "MM.yyyy"} 。要访问这个,RMB > Toggle Field Codes

下一步是计算“5 年零 8 个月”的差异。 为此,我分别计算了“年”和“月”数字,有两个不同的字段,如下所示:field1 年,field2 月,其中

field1 = {= Round ((20*365+5*30 - 14*365-10*30)/365-0.4999,0}
field2 = {=(({Date \@""yy"}-{d1 \@"yy"}) - Round(({Date\@""yy"}*365 + {Date\@""M"}*30 - {d1 \@"yy"}*365 - {d1 \@"M"}*30)/365 -0.4999,0)*12 + ({Date \@ "M"} - {d1 \@ "M"}) + 1)

可以进一步调整以显示 "year" 或 "years", "month" 或 "months" ,但对我来说已经足够了。

一些进一步的解释:

  • 不要写{} 使用Ctrl + F9插入字段
  • 为解决 10.2015 和 02.2020 之间的差异问题,进行了 field2 并发症

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM