Сколько дней в ISO8601 продолжительности "месяцы" и "годы"?

Мне нужно представить продолжительность 100 дней.

Из Википедии:

Длительности представлены в формате P[n]Y[n]M[n]DT[n]H[n]M[n]S

Но сколько дней в месяце? Конечно, это зависит от того, в каком месяце мы находимся... То же самое, дни в году.

1 ответ

Решение

Следуя моему комментарию, похоже, что вполне законно указывать количество, большее, чем количество единиц, составляющих следующую "большую" единицу, так что вы можете просто использовать P100D, Википедия говорит:

Стандарт не запрещает значениям даты и времени в представлении длительности превышать их "точки переноса", за исключением случаев, указанных ниже. Таким образом, "PT36H" можно использовать так же, как и "P1DT12H" для представления одинаковой длительности. Но имейте в виду, что "PT36H" не то же самое, что "P1DT12H" при переключении с или на летнее время.

Хотя в качестве примера приведены часы, похоже, дни тоже должны быть хорошими (и, как показывает ваша проблема, еще более полезными, поскольку месяцы и годы не являются фиксированными величинами). При этом в стандарте не указывается максимальное количество цифр для каждой единицы:

Начальные нули не требуются, но сообщающие стороны должны согласовать максимальное количество цифр для каждого элемента.

Так что, что бы ни потребляло ваше время, вы должны принять как минимум 3 цифры на элемент для P100D работать; это не похоже на необычно высокий уровень необходимой поддержки.

Другие вопросы по тегам