Найти - Пользователи
Полная версия: Как добавить "N" рабочих дней к сегодняшней дате?
Начало » Python для новичков » Как добавить "N" рабочих дней к сегодняшней дате?
1
oDoDo
Сегодня 5.05.2020 (вторник) если к нему добавить 4 рабочих дня то получится 11.05.2020 (понедельник). Т.е. выходные (сб, вс.) не считаем.
Как это реализовать посредством питона?
py.user.next
Так как все недели одинаковые, то тебе нужно:
1) определить сначала, в каком дне недели ты находишься
2) определить, сколько к этому дню недели нужно прибавить дней с учётом выходных
3) прибавить количество дней, определённое в пункте 2, к текущему дню в календаре

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

При разработке функции для второго пункта нужно учесть, что прибавляться может 0 дней, 4 дня, 184 дня, 12345 дней. Всё должно правильно работать для любых чисел.
VadimK
я делал просто:
+ X дней через timedelta в цикле
если день выходной - то минусуем его.

Удобного решения в одну строку не нашел.
py.user.next
VadimK
я делал просто:
+ X дней через timedelta в цикле
если день выходной - то минусуем его.
Про то и речь, что тебе нужно было одно делать, а ему нужно делать похожее, но другое, а потом кому-нибудь ещё понадобится делать похожее, но вообще третье. Поэтому нужно написать функцию, которая подходит ко всем ситуациям одинаково. Даже он сам захочет потом отнять рабочие дни, так для этого не придётся новый код писать, а можно просто будет взять уже написанную функцию и её использовать (если он отрицательные числа там тоже сделает). Если даже брать timedelta в питоне, то можно увидеть на примере её реализации, что timedelta можно как прибавлять к дате, так и отнимать от даты. Они не стали делать только прибавление дельты или только возможность сохранения этой дельты. Её можно и сохранить, и прибавить, и отнять. Поэтому этот модуль datetime ты можешь использовать во всех задачах, связанных со временем, а не только в какой-то одной, в каких-то двух, и так далее.
AD0DE412
тут на форуме где то был мой пост о виджете календарь на kivy … но чет как то не нашлось …
но у меня на машине в каталоге выкинутьчерезнекотороевремяобязательно нашлось может поможет
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB