Пользовательский формат даты в Microsoft Word 2016
Я хотел бы иметь возможность вставить формат даты в Microsoft Word, который не входит в список существующих форматов. В частности, я хочу этот формат:
ДД- й день месяца, ГГГГ
1 ответ
Я предполагаю, что вы говорите об одном из нескольких значений даты, которые Word предлагает в полях. Я также предполагаю, что вы вставляете поля через ленту / графический интерфейс и знаете, как это сделать. ОК, когда вы находитесь в окне настроек "Поле" и выбрали желаемую дату ("Дата создания", (текущая) Дата, "Дата печати" или "Дата сохранения"), нажмите "Коды полей". Появится панель "Расширенные свойства поля" с текстовым полем "Коды полей:", в котором предварительно указано имя поля, выбранного вами слева (которое является просто отображаемым именем в заглавных буквах; например, "CREATEDATE", "ДАТА" и т. Д.)
Вставить \@ "d'th day of' MMMM, yyyy"
после этого имени поля; например,
Нажмите "ОК".
О, я также предполагаю, что вы хотите, чтобы месяц был прописан. Если вы хотите использовать только трехбуквенное сокращение (например, "Dec"), используйте MMM
вместо MMMM
,
К сожалению, вы задаете не тот вопрос. Да, этот вопрос был задан 5 декабря 2017 года, а днем ранее был 4-й. Но предыдущие три дня были 1, 2 и 3 (а не 1, 2 и 3). 21-е, 22-е, 23-е и 31-е также являются исключениями из "-го" правила (но, наоборот, 11-е, 12-е и 13-е не являются). Эта последовательность полей даст правильные порядковые номера для английского языка:
⑴ { 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 } }
Номера строк приведены только для иллюстрации / изложения и не являются частью документа / кода. Кажется, что это без учета регистра (за исключением формата даты, где m
минут и M
это месяц). И "прямые цитаты" ( ) и "фигурные цитаты" ( ) кажутся взаимозаменяемыми.
- Присвойте дату переменной (технически, "закладка") с именем
the_date
, Изменить последнее слово наcreatedate
,printdate
, или жеsavedate
если это то, что вы хотите. - Получить номер дня
the_date
(например, "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
(В приведенном выше, заглавные буквы и пробелы (например, day / 10
против day,10
) являются произвольными / случайными (за исключением format
строка).)
- На первой линии.
- Выбрать
date
(или жеcreatedate
или тот, который вы используете) и нажмите Ctrl + F9. Это изменится на{ date }
и может иметь серый фон. Это то же самое преобразование будет происходить каждый раз, когда вы нажимаете Ctrl + F9, в конечном итоге выглядя как первый блок кода (как показано выше). Не вводите фигурные скобки! - Далее выделите всю строку и нажмите Ctrl + F9.
- Выбрать
- На второй линии.
- Выбрать
the_date \@ “d”
и нажмите Ctrl + F9. - Затем выделите всю строку и нажмите Ctrl + F9.
- Выбрать
- На третьей строке.
- Выбрать
= int(day / 10)
и нажмите Ctrl + F9. - Затем выделите всю строку и нажмите Ctrl + F9.
- Выбрать
- На четвертой строке.
- Выбрать
=mod(day,10)
и нажмите Ctrl + F9. - Затем выделите всю строку и нажмите 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. - Затем выделите всю строку и нажмите Ctrl + F9.
- Выбрать
- На шестой строчке.
- Выбрать
suffix
и нажмите Ctrl + F9. - Затем выберите
Quote “d'” { suffix } “ day of' MMMM, yyyy”
(т.е. изQuote
до конца строки) и нажмите Ctrl + F9. - Затем выделите всю строку и нажмите Ctrl + F9.
- Выбрать
- На седьмой строчке.
- Выбрать
format
и нажмите Ctrl + F9. - Затем выделите всю строку и нажмите Ctrl + F9.
- Выбрать
Обратите внимание, что строка 7 является единственной, которая фактически производит любой текст; первые шесть настроены и могут быть перемещены где-нибудь как начало документа. Возможно, вы захотите удалить разрывы абзацев между полями, чтобы они не занимали много места по вертикали. Затем выберите все поля (или весь документ, например, с помощью Ctrl + A) и нажмите F9 (не Ctrl + F9). Поля (кроме последнего) могут исчезнуть. Если это так, это нормально, и все готово. Если они не исчезают, нажмите Shift + F9 (опять же, не Ctrl + F9), и это должно сделать это.
PS Я проверил это на Word 2013, и вот откуда скриншот.