Skip to content

Производственные календари РФ (2023—2025) в формате JSON. Простой API для получения данных.

License

Notifications You must be signed in to change notification settings

iposho/holidays-calendar-ru

Repository files navigation

Uptimerobot Vercel GitHub Size Last Commit MIT LICENSE Build and Push Docker Image

Производственный календарь 🇷🇺

TL;DR

Производственные календари РФ (2023—2025) в формате JSON. Простой API для получения данных.

Содержание

Как получить

Список доступных календарей

GET /api/calendar
curl -H "Content-Type:application/json" -X GET "https://calendar.kuzyak.in/api/calendar"

Запрос вернет массив имеющихся в наличии календарей.

Ответ

{
  "years": [
    2023,
    2024
  ],
  "status": 200
}

Календарь на год

GET /api/calendar/:year
curl -H "Content-Type:application/json" -X GET "https://calendar.kuzyak.in/api/calendar/2023"

Запрос вернет объект с годом и массивом объектов месяцев.

Ответ

{
  "year": 2023,
  "months": [
    {
      "id": 0,
      "name": "January",
      "workingDays": 17,
      "notWorkingDays": 14,
      "shortDays": 0,
      "workingHours": 136
    }
    // ... Другие месяцы
  ],
  "status": 200
}

Праздничные и сокращенные дни в году

GET /api/calendar/:year/holidays
curl -H "Content-Type:application/json" -X GET "https://calendar.kuzyak.in/api/calendar/2023/holidays"

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

Ответ

{
  "year": 2023,
  "holidays": [
    {
      "date": "2023-01-01T00:00:00.000Z",
      "name": "Новый год"
    }
    // ... Другие праздники
  ],
  "shortDays": [
    {
      "date": "2023-02-22T00:00:00.000Z",
      "name": "День защитника Отечества"
    }
    // ... Другие сокращенные дни
  ],
  "status": 200
}

Календарь на месяц

GET /api/calendar/:year/:month
curl -H "Content-Type:application/json" -X GET "https://calendar.kuzyak.in/api/calendar/2023/1"

Вернет объект месяца. Нумерация месяцев начинается с 1, а не с 0. Январь — месяц под номером 1, декабрь — под номером 12.

Объект содержит id месяца, имя, количество рабочих, нерабочих и коротких дней, а также рабочих часов при восьмичасовой рабочей неделе.

Ответ

{
  "year": 2023,
  "month": {
    "id": 0,
    "name": "January",
    "workingDays": 17,
    "notWorkingDays": 14,
    "shortDays": 0,
    "workingHours": 136
  },
  "status": 200
}

Информацию о конкретном дне

GET /api/calendar/:year/:month/:day
curl -H "Content-Type:application/json" -X GET "https://calendar.kuzyak.in/api/calendar/2023/2/22"

Вернется объект конкретного дня.

Объект содержит информацию о месяце, точную дату, признак рабочего/нерабочего/сокращенного, название праздника, если день праздничный или предпраздничный.

Ответ

{
  "year": 2023,
  "month": {
    "name": "February",
    "id": 1
  },
  "date": "2023-02-22T00:00:00.000Z",
  "isWorkingDay": true,
  "isShortday": true,
  "holiday": "День защитника Отечества",
  "status": 200
}

Локальная установка

git clone https://github.com/iposho/holidays-calendar-ru.git
cd holidays-calendar-ru/
npm i
[...]
npm run dev

Сборка в Docker-контейнер

git clone https://github.com/iposho/holidays-calendar-ru.git
cd holidays-calendar-ru/
#При необходимости использовании Яндекс Метрики, указать в .env ID YANDEX_METRIKA_ID=
cp .env.example .env 
docker build . -t holidays-calendar
docker run -p 5000:5000 holidays-calendar
#либо с использованием Яндекс Метрики
docker run -p 5000:5000 -e YANDEX_METRIKA_ID=XXX-XXX-XXX holidays-calendar

Как внести свой вклад

  1. Форкните этот репозиторий.
  2. Создайте ветку своей фичи (git checkout -b my-new-feature).
  3. Закоммитьте изменения (git commit -am 'Add some feature').
  4. Запушьте изменения в репозиторий (git push origin my-new-feature).
  5. Создайте новый пулл-реквест в ветку develop.

Лицензия

Это проект с открытым кодом, распространяющийся под лицензией MIT License.

About

Производственные календари РФ (2023—2025) в формате JSON. Простой API для получения данных.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •