# Инструкция по составлению файлов ## Общие правила - Нет разделения на обычные и плавающие праздники — все они могут находиться в одном файле. - Исключение: файл `birthdays.txt`, события из которого будут приняты за дни рождения. - Остальные файлы могут иметь любое имя, и их количество неограничено. - Порядок событий в файлах не имеет значения, сортировка по дате необязательна. - Строки, начинающиеся с символа `#`, являются комментариями и не будут отображаться программой. --- ## Формат для `birthdays.txt` ```text DD.MM.YYYY Имя Фамилия именинника ``` ### Пример ```text 26.05.1799 Александр Сергеевич Пушкин ``` Если год рождения неизвестен, указывайте `0000`. --- ## Формат для обычных событий ```text DD.MM.YYYY[,флаги] название события ``` ### Пример ```text 01.01.0000 Новый Год! 14.07.1789 День взятия Бастилии ``` Если год события неизвестен, указывайте `0000`. По умолчанию все события будут отображаться из года в год. --- ## Формат для переходящих событий ```text NWW[+-OFFSET].MM.YYYY[,флаги] название события ``` Где: - `N` — порядковый номер дня недели в месяце: - `1` — первый - `2` — второй - `3` — третий - `4` — четвёртый - `5` — пятый - `Y` — предпоследний - `Z` — последний - `WW` — день недели: - `ПН` - `ВТ` - `СР` - `ЧТ` - `ПТ` - `СБ` - `ВС` - `OFFSET` — смещение в днях относительно рассчитанного дня недели. ### Примеры ```text ZВС.11.0000 День матери в России (последнее воскресенье ноября) 2ВС.05.0000 День матери в Украине (второе воскресенье мая) ``` Если год события неизвестен, указывайте `0000`. --- ## Флаги | Флаг | Описание | |-------|----------| | `1` | Единичное событие, которое требуется показать всего 1 раз (год должен быть указан) | | `!` | Выходной / нерабочий день | | `B` | День рождения | | `W` | Особый день | | `A` | Годовщина (показывает, сколько лет прошло, и год начала — без знака зодиака; год необязателен) | ### Примеры ```text ZВС.03.0000,W Переход на летнее время ZВС.10.0000,W Переход на зимнее время 14.02.2010,A Годовщина свадьбы ```