Это страница документации Модуль:Срок.

Описание модуля

править

Модуль:Срок предназначен для автоматического расчёта времени, прошедшего с момента открытия или основания объекта (транспортной системы, линии, депо, предприятия и т.п.) до сегодняшнего дня или даты закрытия.

Механизм работы

править
  1. Модуль автоматически удаляет квадратные скобки вики-ссылок ([[20 мая]] [[2024|2024 года]]), HTML-комментарии и слова «года/г.».
  2. Принимает текстовые даты (20 мая 2024), цифровые (20.05.2024, 2024-05-20), а также неполные даты (май 2024 или 2024).
  3. Модуль вычисляет разницу строго по календарным границам с учётом високосных годов. Если текущий день месяца меньше дня открытия, дни корректно заимствуются из предыдущего месяца без погрешностей усреднения.
  4. Автоматически подставляет грамматические формы (1 год / 2 года / 5 лет, 1 месяц / 4 месяца / 7 месяцев, 1 день / 3 дня / 12 дней).

Примеры использования

править

1. Внутри шаблона-карточки (инфобокса)

править

В коде шаблона карточки (например, Шаблон:Метрополитен):

|метка5 = Дата открытия
|текст5 = {{#if: {{{дата открытия|}}} | {{{дата открытия}}}{{#if: {{#invoke:Срок|diff|{{{дата открытия}}}|{{{дата закрытия|}}}}} | <br><small style="color: #57606a;">({{#invoke:Срок|diff|{{{дата открытия}}}|{{{дата закрытия|}}}}})</small> }} }}

Как это выглядит в карточке статьи:

  • Действующая система (|дата открытия = 20 мая 2024):
  • > Дата открытия: 20 мая 2024
    (действует 2 года, 3 месяца и 22 дня)
  • Закрытая система (|дата открытия = 10 мая 1995, |дата закрытия = 15 октября 2012):
  • > Дата открытия: 10 мая 1995
    (проработал 17 лет, 5 месяцев и 5 дней)

2. Внутри связного текста статьи

править
Муроморский скоростной трамвай был запущен в эксплуатацию [[9 мая]] [[2024 года]] 
({{#invoke:Срок|diff|9 мая 2024}}).

Как это выглядит: > Муроморский скоростной трамвай был запущен в эксплуатацию 9 мая 2024 года (действует 2 года, 4 месяца и 2 дня).

3. Внутри таблиц и информационных блоков

править

Если требуется вывести только интервал без префиксов «действует/проработал»:

{| class="wikitable"
! Маршрут !! Открыт !! Возраст маршрута
|-
| Трамвай №1 || 9 мая 2024 || {{#invoke:Срок|diff|9 мая 2024|только_число=да}}
|-
| Трамвай №5 || 8 августа 2026 || {{#invoke:Срок|diff|8 августа 2026|только_число=да}}
|}

Как это выглядит:

Маршрут Открыт Возраст маршрута
Трамвай №1 9 мая 2024 2 года, 4 месяца и 2 дня
Трамвай №5 8 августа 2026 1 месяц и 3 дня

4. Отключение отображения дней

править

Если точность до дней избыточна:

{{#invoke:Срок|diff|20 мая 2024|без_дней=да}}

"действует 2 года и 3 месяца"


5. Всплывающая подсказка при наведении

править

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

Дата помечается тонким пунктирным подчёркиванием снизу, а курсор меняется на справочный (`?` / `help`).

Поведение подсказки:

  • При наведении на дату открытия действующей системы всплывает: «действует X лет, Y месяцев и Z дней» (для закрытой — «проработал...»).
  • При наведении на дату закрытия всплывает общий срок эксплуатации: «Срок работы: X лет, Y месяцев и Z дней».

Код для шаблона-карточки:

|метка5 = Дата открытия
|текст5 = {{#if: {{{дата открытия|}}} | {{#if: {{#invoke:Срок|diff|{{{дата открытия}}}|{{{дата закрытия|}}}}} | <abbr title="{{#invoke:Срок|diff|{{{дата открытия}}}|{{{дата закрытия|}}}}}" style="text-decoration: none; border-bottom: 1px dashed #8c959f; cursor: help;">{{{дата открытия}}}</abbr> | {{{дата открытия}}} }} }}

|метка6 = Дата закрытия
|текст6 = {{#if: {{{дата закрытия|}}} | {{#if: {{#invoke:Срок|diff|{{{дата открытия|}}}|{{{дата закрытия}}}}} | <abbr title="Срок работы: {{#invoke:Срок|diff|{{{дата открытия|}}}|{{{дата закрытия}}}|только_число=да}}" style="text-decoration: none; border-bottom: 1px dashed #8c959f; cursor: help;">{{{дата закрытия}}}</abbr> | {{{дата закрытия}}} }} }}

Использование в обычном тексте статьи:

Движение было открыто <abbr title="{{#invoke:Срок|diff|20 мая 2024}}" style="border-bottom: 1px dashed #8c959f; cursor: help;">20 мая 2024 года</abbr>.

"Движение было открыто 20 мая 2024 года".

6. Нейтральный отсчёт (для городов, населённых пунктов и событий)

править

Для объектов, к которым не подходит транспортное слово «действует» (города, крепости, памятники, исторические события, битвы или конференции), предусмотрены нейтральные формулировки.

Для городов и поселений (|тип=город или |тип=нп):

  • Действующий город: «существует 323 года»
  • Заброшенный/упразднённый город: «просуществовал 142 года»

Для событий и годовщин (|нейтрально=да или |тип=событие):

  • Прошедшее событие: «прошло 80 лет, 4 месяца и 2 дня»
  • Длившийся процесс (при указании даты окончания): «продлилось 3 года и 1 месяц»

Относительный формат (|режим=назад):

  • Выводит: «2 года, 3 месяца и 15 дней назад»

Собственный префикс и суффикс (|префикс=..., |суффикс=...):

  • {{#invoke:Срок|diff|1147|префикс=возраст Москвы: }}возраст Москвы: 879 лет

Примеры вызова в тексте

править
  • {{#invoke:Срок|diff|1703|тип=город}} → существует 323 года и 8 месяцев
  • {{#invoke:Срок|diff|12 апреля 1961|нейтрально=да}} → прошло 65 лет, 4 месяца и 30 дней
  • {{#invoke:Срок|diff|9 мая 1945|режим=назад}} → 81 год, 4 месяца и 2 дня назад

Использование в шаблоне населённого пункта ({{НП}})

править

Для всплывающей подсказки в карточке населённого пункта над полем «Основан»:

|метка13 = Основан
|текст13 = {{#if: {{{дата основания|}}} | {{#if: {{#invoke:Срок|diff|{{{дата основания}}}|тип=город}} | <abbr title="{{#invoke:Срок|diff|{{{дата основания}}}|тип=город}}" style="text-decoration: none; border-bottom: 1px dashed #8c959f; cursor: help;">{{{дата основания}}}</abbr> | {{{дата основания}}} }} }}