Расчет дат с полями (Microsoft Word)
Эйдан спросил, можно ли рассчитывать даты с помощью полей. Похоже, ему нужна дата на две недели в будущем, и он подумал, что должен быть простой способ вычислить такую дату в будущем с помощью полей. К сожалению, нет простого пути. Хотя Word позволяет выполнять простые вычисления с использованием числовых значений в полях, он не позволяет выполнять такие вычисления с использованием дат вместо чисел.
Однако вы можете разделить даты на их внутренние части (месяцы, дни и годы), а затем выполнить свои вычисления, но это создает целый набор новых проблем. Внезапно вам нужно задуматься о том, что происходит, когда вы «катитесь» по истечении месяца или года. Математика, необходимая для такого расчета, нетривиальна. В качестве примера рассмотрим следующее составное поле:
{QUOTE "{SET Delay "14"}{SET "DaysInMonth" {IF {DATE \@ "MM"} <> 2 {=ROUND(30.575{DATE \@ "MM"},0)-ROUND(30.575{= {DATE \@ "MM"} —1},0)}{IF {=MOD({DATE \@ "yy"|, 4)} > 0 "28" "29"}}}{SET "NextMonth" {IF {DATE \@ "MM"} = 12 "1/97" "{= {DATE \@ "MM"} + 1}/97}}{IF {= {REF Delay} + {DATE \@ "dd"}} <= {DaysInMonth} {DATE \@ "MMMM {= {REF Delay} + {DATE \@ "dd"}}, yyyy"}{QUOTE "{NextMonth \@ "MMMM"} {= {REF Delay} + {DATE \@ "dd"} — {DaysInMonth}}, {IF {DATE \@ "MM"} <> 12 {DATE \@ "yyyy"}{DATE \@ "{= 1 + {DATE \@ "yyyy"} \# "xxxx"}" }}}}"}
Это вернет дату через две недели (указанную в первой строке, где задано значение задержки. Недостатком, конечно же, является составной характер поля — только в этом составном поле имеется более 30 различных полей! Даже это реализация, сколь бы грозной она ни казалась, не будет правильно обрабатывать високосные годы во всех случаях (она не будет правильно обрабатывать високосные годы в столетних годах, кратных 400.)
| Есть простой способ для расчета будущих дат? Да, есть — просто используйте макросы. С помощью всего нескольких простых инструкций вы сможете быстро вычислить даты, которые в противном случае были бы трудными. Это было рассмотрено в более ранних WordTips; вы также можете найти информацию в следующем Word Страница MVP:
http://wordmvp.com/FAQs/MacrosVBA/DateOfPrevMonth.htm
WordTips — ваш источник экономичного обучения Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (8660) относится к Microsoft Wor d 2007, 2010, 2013, 2016, 2019 и Word в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Word здесь:
link: / word-Calculating_Dates_with_Fields [Расчет дат с полями]
.