Сколько дней в ISO8601 продолжительности "месяцы" и "годы"?
Мне нужно представить продолжительность 100 дней.
Из Википедии:
Длительности представлены в формате P[n]Y[n]M[n]DT[n]H[n]M[n]S
Но сколько дней в месяце? Конечно, это зависит от того, в каком месяце мы находимся... То же самое, дни в году.
1 ответ
Следуя моему комментарию, похоже, что вполне законно указывать количество, большее, чем количество единиц, составляющих следующую "большую" единицу, так что вы можете просто использовать P100D
, Википедия говорит:
Стандарт не запрещает значениям даты и времени в представлении длительности превышать их "точки переноса", за исключением случаев, указанных ниже. Таким образом, "PT36H" можно использовать так же, как и "P1DT12H" для представления одинаковой длительности. Но имейте в виду, что "PT36H" не то же самое, что "P1DT12H" при переключении с или на летнее время.
Хотя в качестве примера приведены часы, похоже, дни тоже должны быть хорошими (и, как показывает ваша проблема, еще более полезными, поскольку месяцы и годы не являются фиксированными величинами). При этом в стандарте не указывается максимальное количество цифр для каждой единицы:
Начальные нули не требуются, но сообщающие стороны должны согласовать максимальное количество цифр для каждого элемента.
Так что, что бы ни потребляло ваше время, вы должны принять как минимум 3 цифры на элемент для P100D
работать; это не похоже на необычно высокий уровень необходимой поддержки.