0 date-time date-format microsoft-word microsoft-word-2016
我希望能够在 Microsoft Word 中插入不包含在现有格式列表中的日期格式。具体来说,我想要这种格式:
DD ? 月中的第几天,YYYY
我假设您正在谈论 Word 在字段中提供的少数日期值之一。我还将假设您正在通过功能区?/?GUI 插入字段,并且您知道如何执行此操作。好的,当您在“字段”设置窗口中并选择了所需的日期(“创建日期”、(当前)?日期、“打印日期”或“保存日期”)时,单击“字段?代码”。将出现一个“高级字段属性”窗格,其中包含一个“字段?代码:”文本框,该文本框预先填充了您在左侧选择的字段的名称(这只是其全大写的显示名称;例如,“CREATEDATE” 、“日期”等)
\@ "d'th day of' MMMM, yyyy"在该字段名称之后插入;例如,
单击“确定”。
哦,我还假设您想要拼写月份。如果您只需要三个字母的缩写(例如,“Dec”),请使用MMM代替MMMM。
不幸的是,你问错了问题。是的,这个问题是在2017年12月5号问的,前一天是4号。但前三天是第1、2、3天(不是第1、2、3天)。第 21、第 22、第 23 和第 31 次也是“第”规则的例外(但反过来,第 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 } }
Run Code Online (Sandbox Code Playgroud)
行号仅用于说明?/?说明目的,而不是文档的一部分?/?代码。这似乎不区分大小写(日期格式除外,其中m是分钟和M月份)。和“直引号”(
) 和“卷曲引号”(
) 似乎可以互换。
the_date. 将最后一个单词更改为createdate, printdate, 或者savedate
如果这就是您想要的。the_date(例如,“Dec 5”?5)并将其分配给变量day。day(例如,5 ? 0, 17 ? 1, 23 ? 2)的十位数字并将其分配给变量dec。day(例如,5 ? 5, 17 ? 7, 23 ? 3) 的个位并将其分配给变量d10。day。如果dec是 1,则day在 10 到 19 之间,后缀是“th”。否则,如果d10是 1、2 或 3,则后缀分别为“st”、“nd”或“rd”。对于所有其他值,后缀为“th”。然后将其分配给变量suffix。d'的后缀 ( suffix) 和?day?of'?MMMM,?yyyy. 这使用了quote我在Microsoft 社区学到的技巧(使用领域);我不完全明白。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
Run Code Online (Sandbox Code Playgroud)
(在上面,大小写和空格(例如,day / 10vs. day,10)是任意的?/?随机(format字符串除外)。)
date(或createdate,或您使用的任何一个)并按Ctrl+ F9。它将更改为
并可能具有灰色背景。每次按+时都会发生相同的转换,最终看起来像第一个代码块(上面的方式)。不要输入任何花括号!{ date }CtrlF9the_date \@ “d”并按Ctrl+ F9。= int(day / 10)并按Ctrl+ F9。=mod(day,10)并按Ctrl+ F9。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。suffix 并按Ctrl+ F9。Quote “d'” { suffix } “ day of' MMMM, yyyy”
(即从Quote到行尾)并按Ctrl+ F9。format并按Ctrl+ F9。请注意,第 7 行是唯一实际生成任何文本的行;前六个已设置,可以移动到文档开头等位置。您可能希望删除字段之间的分段符,以避免它们占用大量垂直空间。然后选择所有字段(或整个文档,例如,使用Ctrl+ A)并按F9(而不是 Ctrl+ F9)。字段(除了最后一个)可能会全部消失。如果是这样,这是正常的,您就完成了。如果它们没有消失,请按Shift+ F9? (再次,不是 Ctrl+ F9),应该这样做。
PS?我在 Word 2013 上检查过这个,这就是屏幕截图的来源。