Разница между единицами DATEDIF «d» и «yd»

#excel #excel-formula #google-sheets-formula

#excel #excel-формула #google-таблицы-формула

Вопрос:

Я пытаюсь понять, в чем разница между DATEDIF (date1,date2,»d») и DATEDIF (date1,date2,»yd») в Excel. Это очень сбивает с толку при попытке разобраться с датами високосного года.

например

=DATEDIF("2/29/2020","3/1/2021","yd") выдает 0 .

но когда я пытаюсь дать

=DATEDIF("2/29/2020","3/1/2021","d") выдает 1 .

и еще одна вещь

=DATEDIF("2/1/2020","3/1/2021","yd") дает 29 и

=DATEDIF("2/1/2019","3/1/2021","yd") дает 28.

В некоторых статьях утверждается, что для вычислений используется год начальной даты, поэтому с этой логикой DATEDIF("2/29/2020","3/1/2021","yd") 1 вместо нуля должно быть указано. Может кто-нибудь объяснить, как выполняются вычисления и какой год учитывается для расчетов?

Комментарии:

1. DATEDIF является частью Excel в первую очередь для обеспечения поддержки старых рабочих книг Lotus 1-2-3 и при определенных обстоятельствах, как вы обнаружили, будет давать неточные результаты. С этим мало что можно сделать, кроме как разработать обходные пути, которые удовлетворят вашим желаемым алгоритмам.

Ответ №1:

Из документов вы можете увидеть, в чем разница.

Чтобы быть явным, YD вариант не учитывает год, что показывает разные результаты в случае високосного года.

Комментарии:

1. можете ли вы подробнее описать «вариант YD не учитывает год, что показывает разные результаты в случае високосного года», пожалуйста?

2. и почему DATEDIF(«2/29/2020″,»3/1/2021″,» yd») дает 0, в то время как оно должно быть 1?

3. Ну, это может быть особенностью дизайна, в этом вычислении происходит то, что он рассматривает индекс даты относительно 01/01 и вычитает результаты. Он не знает о високосных годах и не ищет взаимосвязи между заданными датами.

4. При всем сказанном ваш 3/1/2021 анализируется как 3/1 и использует индекс невисокосного года. 2/29/2020 с другой стороны, это действительная дата, и она индексирует ее таким же образом, возвращая тот же индекс, что и для 3/1 варианта.

5. Это просто нелепое решение для некоторого крайнего случая. Вы можете сообщить им об этом: D