Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Почему в xml файле отсутствуют выходные дни? #29

Open
binom1982 opened this issue Sep 9, 2020 · 8 comments

Comments

@binom1982
Copy link

Почему в xml файле отсутствуют выходные дни (суббота и воскресенье), хотя в html файле все сформировано хорошо?
Приходится заморачиваться с объединением выходных и исключением дней, когда выходной является рабочим днем (например 09.06.2018 )

@xmlcalendar
Copy link
Owner

Если указать субботу и воскресенье, то файл увеличится еще строчек на 100 и его было-бы сложней поддерживать.
Иначе говоря добавлять эти дни было-бы избыточно.
В любом языке программирования есть библиотеки для работы с грегорианским календарем, в нем вы можете выбрать все выходные дни.
Опишите что конкретно вам нужно, только выходной или нет день? или вам нужно подсчитать количество часов?

Есть идея написать конвертер из xml в других форматы.
К примеру можно было бы выгружать в csv как на сайте data.gov.ru:

2018,\"1,2,3,4,5,6,7,8,13,14,20,21,27,28\",\"3,4,10,11,17,18,22*,23,24,25\",\"3,4,7*,8,9,10,11,17,18,24,25,31\",\"1,7,8,14,15,21,22,28*,29,30\",\"1,2,5,6,8*,9,12,13,19,20,26,27\",\"2,3,9*,10,11,12,16,17,23,24,30\",\"1,7,8,14,15,21,22,28,29\",\"4,5,11,12,18,19,25,26\",\"1,2,8,9,15,16,22,23,29,30\",\"6,7,13,14,20,21,27,28\",\"3,4,5,10,11,17,18,24,25\",\"1,2,8,9,15,16,22,23,29*,30,31\",247,118,1970,1772.4,1179.6

или в json (issue уже создано)

В каких-то случаях возможно проще было бы сделать api на сайте. Так что вы указываете день, а сервис будет говорить рабочий день, или нет.

@WilixLead
Copy link

@xmlcalendar Если праздник выпадает на выходной, обычно бывает перенос выходного на другой день. Как из текущей структуры выяснить куда перенесен день?

@xmlcalendar
Copy link
Owner

@WilixLead Сейчас информации о переносах нет, можно ввести отдельную секцию в xml для переносов, либо разрулить это через holiday. Как вы считаете?

@WilixLead
Copy link

Надо подумать. Есть признак рабочего дня в выходной (тип 2). Можно просто просто отмечать перенос, как выходной, но тогда непонятно, что и куда перенесли. Возможно информация что именно перенесли не особо важна, но было бы неплохо сразу это учесть.
Думаю это можно разрулить в days. Придется добавить атрибут (например from="01.07"). Тогда, по идее, новый тип можно не вводить.
Получается у дня есть признак выходного "t=1" и понятно откуда перенесли "from=01.07", ID праздника уже присутствует

@xmlcalendar
Copy link
Owner

@WilixLead Хорошая идея, тогда давайте так и сделаем, на этой недели добавим новый атрибут

xmlcalendar pushed a commit that referenced this issue Nov 17, 2020
@xmlcalendar
Copy link
Owner

@binom1982 Если вам нужно только определить выходной это день или нет, то можно просто сгенерить txt файл со списком всех выходных, тогда не надо будет заморачиваться с объединением. Как вы думаете?

@binom1982
Copy link
Author

Хотелось бы сразу получать все выходные и праздничные дни (а также с перенесенными выходными) из вашего файла. В противном случае нужно получать все выходные, затем клеить с вашими данными и учитывать переносы. Это конечно не сложно, но для обычного человека который сталкивается с задачей подсчета рабочих дней, еще и за несколько лет полная информация была бы более удобной. Возможно было лучше публиковать full и small версию файла.

@xmlcalendar
Copy link
Owner

xmlcalendar commented Dec 2, 2020

Все выходные и праздничные дни (а также с перенесенными выходными):
http://xmlcalendar.ru/data/ru/2021/calendar.txt
это полная информация:
http://xmlcalendar.ru/data/ru/all/calendar.txt
по аналогии сделано в csv формате. Там помимо выходных есть еще сокращенные дни

Пример использования на bash:
(curl -s http://xmlcalendar.ru/data/ru/all/calendar.txt | grep -q $(date +"%Y.%m.%d") ) && echo "Today is non-working day"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants