Модуль:Срок/doc
Это страница документации Модуль:Срок.
Описание модуля
Модуль:Срок предназначен для автоматического расчёта времени, прошедшего с момента открытия или основания объекта (транспортной системы, линии, депо, предприятия и т.п.) до сегодняшнего дня или даты закрытия.
Механизм работы
- Модуль автоматически удаляет квадратные скобки вики-ссылок (
[[20 мая]] [[2024|2024 года]]), HTML-комментарии и слова «года/г.». - Принимает текстовые даты (
20 мая 2024), цифровые (20.05.2024,2024-05-20), а также неполные даты (май 2024или2024). - Модуль вычисляет разницу строго по календарным границам с учётом високосных годов. Если текущий день месяца меньше дня открытия, дни корректно заимствуются из предыдущего месяца без погрешностей усреднения.
- Автоматически подставляет грамматические формы (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> | {{{дата основания}}} }} }}