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

时间:2010-04-27 14:14:51

标签: ms-word word-field fieldcodes

我有个简历,想在开业时自动更新我的年龄。那么,我应该在MS Word字段中插入什么公式?

类似于:

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

5 个答案:

答案 0 :(得分:4)

我试过但在Word字段中找不到相当于Excel的方法来减去另一个白天的时间(比如说从今天03/21/2013起的05/18/1983),这在Excel中很容易从白天开始(已经选择了Excel 2013年01/01/1900作为开始,并且每隔一天根据此参考计算,所显示的细节仅是表示此结果的方式(完整日期,月份数字或其全名,甚至简单的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,这样我们就不会增加一年过度。
  5. MERGEFORMAT选项对于保持正确的格式非常有用。

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

    • 右键单击花括号{}内的文本并选择“切换域代码”,从代码本身切换(内部文本)或此代码的微积分结果,但这可能不是最新的(可能是以前的结果,代码也已更改)。
    • 以确保结果是最新的,右键单击并选择“更新字段”。
    • 并确保打开主域内的每个字段,选择整个字段(最好选择包含它的整行),右键单击并选择“切换域代码”(否则,某些字段编码错误或者可能会返回一个void表达式,可能不会被看到,并且可能会在以后的情况下影响查看结果。)

    那将于1983年5月18日(我改变1月1日,即01/01至18日避免混淆):

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

答案 1 :(得分:3)

这是使用Word字段代码的最佳网站之一 - http://www.addbalance.com/usersguide/fields.htm - 并且有关于如何创建+/-日期的示例。

以下是基于1月出生月和1983年出生年的计算方法。

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

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

答案 2 :(得分:0)

我建议计算两个日期的序列号并相互减去它们。它不必过于参与:我们只对年数感兴趣。 年* 365 +月* 31 +天应该在这里做得很好。

用年份将差值除以365.然后使用INT剥离小数部分(不是ROUND,这会使你年复一年的一半)。

{ = INT(({ DATE \@"YYYY" }*365 + { DATE \@"MM" }*31 + { DATE \@"dd" } 
      - (my_year*365 + my_month*31 + my_day)) / 365) \# "0" }

答案 3 :(得分:0)

  1. 创建文本表单字段。将该字段命名为&#34; BirthDate&#34;
  2. enter image description here

    1. 使用以下代码创建字段:
    2. {={DATE \@ "yyyy"} — {BirthDate \@ "yyyy"}}

答案 4 :(得分:0)

我已经做了类似的事情:

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

我已将“ 10.2014”映射为名称为“ d1”的书签(插入>书签)(稍后会派上用场。“ 05.2020”是“日期”(插入>字段>日期),格式为{{ 1}}。要访问它,请输入RMB>切换域代码

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

{DATE \@ "MM.yyyy"}

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

一些进一步的解释:

  • 请勿写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) 。使用 Ctrl + F9 插入字段
  • 进行了
  • field2并发症来解决10.2015和02.2020之间的差异的问题