-
Notifications
You must be signed in to change notification settings - Fork 28
TimeIntervalFormat
Если требуется указать, как должен отображаться счетчик временного интервала (типа time_interval
), то можно указать формат его отображения. Формат задаётся строкой с подстановками, вида:
<counter name="time_interval" type="time_interval" format="{@H}:{@min}:{@s}"/>
Возможные варианты мер времени(указано минимальное и полное название меры):
-
mil
(millis
) - миллисекунды -
s
(seconds
) - секунды -
min
(minutes
) - -
h
(hours
) - часы -
d
(days
) - дни (каждый день считается равным 24 часам) -
w
(weeks
) - недели (равна 7 дней) -
mo
(months
) - месяцы (равен 30 дней) -
y
(years
) - года (равен 365 дней, равен 12 месяцев)
В подстановке можно указывать и минимальное, и максимальное имя меры.
Заметьте, что временной интервал не привязан к календарю, а потому не учитывает ни переходы на летнее\зимнее время, ни разное число дней в разных месяцах, ни високосные года. Точное представление временного интервала задаётся использованием часов, минут, секунд и миллисекунд, остальные меры приблизительные.
Если в подстановке мера указана заглавными буквами, то в неё будет подставлено значение временного интервала целиком в этой мере. Например,
{@H}
- количество целых часов в интервале, {@MO}
- количество целых месяцев в интервале (приблизительно, но с учетом, что в году 12 месяцев). Обратите внимание, ВСЕ буквы меры для этого должны быть заглавными!
Если в подстановке мера указана строчными буквами, то вместо неё будет подставлено значение интервала в этой мере, сверх его значения в более старшей мере. Например, {@min}
отобразит, сколько в интервале целых минут сверх целых часов. {@mo}
- сколько в интервале месяцев сверх целых годов.
Для каждой меры установлены следующие более старшие меры:
-
millis
>seconds
-
seconds
>minutes
-
minutes
>hours
-
hours
>days
-
days
>years
-
weeks
>years
-
months
>years
Если установленное по умолчанию старшинство мер не подходит, то можно явно его установить. Например, {@weeks>months}
означает число недель сверх целых месяцев, {@days>weeks>years}
означает число дней после целого числа недель, прошедших с начала года.
Примечание: Месяцы обрабатываются несколько особенно. Дело в том, что запись {@months}
всегда эквивалентна {@months>years}
. То есть, несмотря на то, что месяц считается равным 30 дней, в году ровно 12 месяцев. То есть, в 10 годах 120 месяцев, а не 121 (то есть 365*10/30). Такие сложности возникают потому, что временной интервал не привязан к календарю.
Примеры:
{@H}:{@min}:{@s}
- часы:минуты:секунды
{@D}д,{@h}:{@min}:{@s}
- дни,часы:минуты:секунды
{@Y} лет {@mo} мес.
- лет, месяцев