Microsoft Word 2016 中的自定义日期格式

Microsoft Word 2016 中的自定义日期格式

我希望能够在 Microsoft Word 中插入现有格式列表中未包含的日期格式。具体来说,我想要这种格式:

直接差分 日月,YYYY

答案1

我假设您正在谈论 Word 在字段中提供的少数日期值之一。我还假设您正在通过功能区/ GUI 插入字段,并且您知道如何执行此操作。好的,当您在“字段”设置窗口中,并且您已选择所需的日期(“创建日期”,(当前)日期,“打印日期”或“保存日期”)时,单击“字段代码”。将出现一个“高级字段属性”窗格,其中的“字段代码:”文本框已预先填充了您在左侧选择的字段的名称(即其全大写的显示名称;例如,“CREATEDATE”,“DATE”等)。

\@ "d'th day of' MMMM, yyyy"在该字段名称后插入;例如,

“高级字段属性”窗格

单击“确定”。

哦,我还假设您希望拼写出月份。如果您只想要三个字母的缩写(例如“Dec”),请使用MMM而不是MMMM

不幸的是,你问错了问题。是的,这个问题是在 2017 年 12 月 5 日提出的,前一天是 4 日。但前三天分别是 1 日、2 日和 3 日(不是第 1、2 和 3)。第 21、22、23 和 31 也是“th”规则的例外(但奇怪的是,第 11、12 和 13 不是例外)。以下字段序列将生成正确的英语序数词:

(1)     { set the_date { date } }
(2)     { Set day { the_date \@ “d” } }
(3)     { Set dec { = int(day / 10) } }
(4)     { Set d10 { =mod(day,10) } }
(5)     { Set suffix { If dec = 1 “th” { If d10 = 1 “st” { If d10 = 2 “nd” { If d10 = 3 “rd” “th” } } } } }
(6)     { Set format { Quote “d'” { suffix } “ day of' MMMM, yyyy” } }
(7)     { The_Date \@ { format } }

行号仅用于说明/展示目的,不是文档/代码的一部分。这似乎不区分大小写(日期格式除外,其中m是分钟,M是月份)。并且“直引号”(直引号)和“花括号”(花括号) 似乎可以互换。

  1. 将日期赋给名为 的变量(技术上称为“书签”) 。 如果您愿意,可以the_date将最后一个单词更改为createdateprintdate或。savedate
  2. 获取日期数the_date(例如“12 月 5 日”→5)并将其分配给变量day
  3. 获取的十位数字day(例如,5→0、17→1、23→2)并将其赋给变量dec
  4. 获取的个位数day(例如,5→5、17→7、23→3)并将其赋给变量d10
  5. 确定 的适当序数后缀day。如果dec为 1,则day介于 10 和 19 之间,后缀为“th”。否则,如果d10为 1、2 或 3,则后缀分别为“st”、“nd”或“rd”。对于所有其他值,后缀为“th”。然后将其分配给变量suffix
  6. 构建一个格式字符串,就像我在答案的第一部分中使用的一样。连接、上一步中的d'后缀 ( ) 和 。这使用了我在 学到的一个技巧(使用字段)suffix day of' MMMM, yyyyquote微软社区;我不完全明白。
  7. 这基本上是答案第一部分的重复,但the_date根据格式显示format

要使用此功能,请复制以下内容并将其粘贴到您的 Word 文档中:

set the_date date
Set day the_date \@ "d"
Set dec = int(day / 10)
Set d10 =mod(day,10)
Set suffix If dec = 1 “th” If d10 = 1 “st” If d10 = 2 “nd” If d10 = 3 “rd” “th”
Set format Quote “d'” suffix “ day of' MMMM, yyyy”
The_Date \@ format

(在上面,大写和间距(例如,day / 10vs. day,10)是任意/随机的(字符串除外format)。)

  1. 在第一行。
  • 选择date(或createdate,或您使用的任何一个)并按Ctrl+ F9。它将变为 并且可能具有灰色背景。每次按+时都会发生相同的变换,最终看起来像第一个代码块(远在上面)。不要输入任何花括号!{ date }CtrlF9
  • 接下来,选择整行并按Ctrl+ F9
  1. 在第二行。
  • 选择the_date \@ “d”并按Ctrl+ F9
  • 然后选择整行并按Ctrl+ F9
  1. 在第三行。
  • 选择= int(day / 10)并按Ctrl+ F9
  • 然后选择整行并按Ctrl+ F9
  1. 在第四行。
  • 选择=mod(day,10)并按Ctrl+ F9
  • 然后选择整行并按Ctrl+ F9
  1. 在第五行。
  • 选择If d10 = 3 “rd” “th”(在行尾)并按Ctrl+ F9
  • 然后选择If d10 = 2 “nd” { If d10 = 3 “rd” “th” } 并按Ctrl+ F9
  • 然后选择If d10 = 1 “st” { If d10 = 2 “nd” { If d10 = 3 “rd” “th” } } 并按Ctrl+ F9
  • 然后选择If dec = 1 “th” { If d10 = 1 “st” { If d10 = 2 “nd” { If d10 = 3 “rd” “th” } } } 并按Ctrl+ F9
  • 然后选择整行并按Ctrl+ F9
  1. 在第六行。
  • 选择suffix并按Ctrl+ F9
  • 然后选择Quote “d'” { suffix } “ day of' MMMM, yyyy” (即从Quote到行尾)并按Ctrl+ F9
  • 然后选择整行并按Ctrl+ F9
  1. 在第七行。
  • 选择format并按Ctrl+ F9
  • 然后选择整行并按Ctrl+ F9

请注意,第 7 行是唯一实际生成文本的行;前六行是设置好的,可以移动到某个位置,例如文档的开头。您可能希望删除字段之间的段落分隔符,以避免它们占用大量垂直空间。然后选择所有字段(或整个文档,例如使用Ctrl+ A)并按F9(不是 Ctrl+ F9)。所有字段(最后一个字段除外)可能都会消失。如果是这样,这是正常的,您就完成了。如果它们没有消失,请按Shift+ F9  (再次,不是 Ctrl+ F9),这样就可以了。


PS:我在 Word 2013 上检查了这一点,屏幕截图就是从那里来的。

相关内容