|
Помогите отсчитать по календарю нужное число рабочих дней
|
|||
---|---|---|---|
#18+
Есть календарь в виде такой структуры: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Здесь 0 в числовых значениях означает глобальную маску, а любое другое значение задает соответствующий элемент даты (год, месяц, день, день недели), для которого действует запись. Например производственный календарь на 2020 год выглядит таким образом: SCOPEYYYYMMDDDCLASSDESCRIPTIONmain0000workПрофиль по умолчаниюmain0006freeВыходной (суббота)main0007freeВыходной (воскресенье)main0110freeНовогодние каникулыmain0120freeНовогодние каникулыmain0130freeНовогодние каникулыmain0140freeНовогодние каникулыmain0150freeНовогодние каникулыmain0160freeНовогодние каникулыmain0170freeРождество Христовоmain0180freeНовогодние каникулыmain02230freeДень защитника Отечестваmain0380freeМеждународный женский деньmain0510freeПраздник Весны и Трудаmain0590freeДень Победыmain06120freeДень Россииmain01140freeДень народного единстваmain20202240freeПеренос 23.02main2020390freeПеренос 08.03main2020540freeПеренос 04.01main2020550freeПеренос 05.01main20205110freeПеренос 09.05 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
В CLASS задается класс дня (рабочий/нерабочий), в первой строке указывается значение класса по умолчанию, следующие две строки задают выходные дни, затем идут ежегодные праздники и наконец корректировочные записи для конкретного года. Вот, например, календарь на текущий год: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Возникла задача, для которой мне нужно отсчитать от текущей даты плюс 3 рабочих дня (для которых CLASS='work'). Если делать в лоб, то можно просто сформировать календарь (аналогично предыдущему запросу) на +20 дней и уже по ним отсчитать 3 рабочих дня. Но это как-то топорно. Мне кажется, что должен быть более прямой способ, основанный на аналитике и вычислениях. Но пока не соображу, откуда начать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2020, 16:54 |
|
Помогите отсчитать по календарю нужное число рабочих дней
|
|||
---|---|---|---|
#18+
Alibek B. Но это как-то топорно. нетопорное еще ж и отрадить надо луче сделайте ф-цию, которая бы определяла рабочий/выходной по любому пригодится ps у Вас кажись на референдум выходных добавали, да и за вирус обещали ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2020, 17:10 |
|
|
start [/forum/topic.php?fid=52&msg=39977834&tid=1881081]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 300ms |
total: | 456ms |
0 / 0 |