Skip to content
root edited this page Aug 5, 2015 · 1 revision

Введение

Если требуется указать, как должен отображаться счетчик временного интервала (типа 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} мес. - лет, месяцев

Clone this wiki locally