Производственный календарь на Python
- четверг, 7 апреля 2016 г. в 03:14:42
pip install prod-cal
from procal import ProdCal
my_first_prod_cal = ProdCal()
# Проверяем праздничный день 1 мая
my_first_prod_cal.is_work_day(2016, 5, 1)
# Проверяем рабочий день
my_first_prod_cal.is_work_day(2016, 4, 1)
# Проверяем выходной день
my_first_prod_cal.is_work_day(2016, 4, 2)
# Проверяем перенос празничного дня (рабочий день)
my_first_prod_cal.is_work_day(2016, 2, 20)
# Передаём сразу объект даты
my_first_prod_cal.is_work_day(date(2016, 5, 1)
# Передаём в качестве аргумента строку (today - сегодня)
my_first_prod_cal.is_work_day('today')
# Передаём в качестве аргумента строку (yesterday - вчера)
my_first_prod_cal.is_work_day('yesterday')
# Передаём в качестве аргумента строку (tomorrow - завтра)
my_first_prod_cal.is_work_day('tomorrow')
# Проверяем количество рабочих дней в различных месяцах
my_first_prod_cal.count_work_days([2016, 4, 1], [2016, 4, 30])
my_first_prod_cal.count_work_days([2016, 5, 1], [2016, 5, 31])
my_first_prod_cal.count_work_days([2016, 6, 1], [2016, 6, 30])
# Передаём сразу в формате даты и времени
my_first_prod_cal.count_work_days(date(2016, 4, 1), date(2016, 4, 30))
my_first_prod_cal.count_work_days(date(2016, 5, 1), date(2016, 5, 31))
my_first_prod_cal.count_work_days(date(2016, 6, 1), date(2016, 6, 30))
# Передаём дату начала ввиде текста (today, yesterday, tomorrow)
my_first_prod_cal.count_work_days('today', date(2016, 4, 30))
my_first_prod_cal.count_work_days('yesterday', date(2016, 4, 30))
my_first_prod_cal.count_work_days('tomorrow', date(2016, 4, 30))
# Передаём в качестве конечной даты количество дней от даты начала (включительно)
my_first_prod_cal.count_work_days([2016, 4, 1], 30)
my_first_prod_cal.count_work_days('today', 30)
# Проверяем количество выходных дней в различных месяцах
my_first_prod_cal.count_holidays([2016, 4, 1], [2016, 4, 30])
my_first_prod_cal.count_holidays([2016, 5, 1], [2016, 5, 31])
my_first_prod_cal.count_holidays([2016, 6, 1], [2016, 6, 30])
# Передаём сразу в формате даты и времени
my_first_prod_cal.count_holidays(date(2016, 4, 1), date(2016, 4, 30))
my_first_prod_cal.count_holidays(date(2016, 5, 1), date(2016, 5, 31))
my_first_prod_cal.count_holidays(date(2016, 6, 1), date(2016, 6, 30))
# Передаём дату начала ввиде текста (today, yesterday, tomorrow)
my_first_prod_cal.count_holidays('today', date(2016, 4, 30))
my_first_prod_cal.count_holidays('yesterday', date(2016, 4, 30))
my_first_prod_cal.count_holidays('tomorrow', date(2016, 4, 30))
# Передаём в качестве конечной даты количество дней от даты начала (включительно)
my_first_prod_cal.count_holidays([2016, 4, 1], 30)
my_first_prod_cal.count_holidays('today', 30)
# Рассчитываем конечную дату по рабочим дням
my_first_prod_cal.get_date_by_work_days([2016, 4, 1], 21))
my_first_prod_cal.get_date_by_work_days('today', 21)
from prodcal import ProdCal
my_prod_cal = ProdCal(locale='UA')
def get_date_today(day):
today = datetime.today().date()
if 'today' == day:
return today
elif 'yesterday' == day:
return today - timedelta(days=1)
elif 'tomorrow' == day:
return today + timedelta(days=1)
raise ValueError('Unknown string format', day)
def cast(start_date, end_date):
if isinstance(start_date, (tuple, list)) and isinstance(end_date, (tuple, list)):
start_date, end_date = date(*start_date), date(*end_date)
if isinstance(start_date, str):
start_date = get_date_today(start_date)
elif isinstance(start_date, (tuple, list)):
start_date = date(*start_date)
if isinstance(end_date, (tuple, list)):
end_date = date(*end_date)
elif isinstance(end_date, int):
end_date = calc_days_by_int(start_date, end_date)
if isinstance(start_date, date) and isinstance(end_date, date):
pass
else:
raise ValueError("Unknown format for parse")
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.