Skip to content

Instantly share code, notes, and snippets.

@olivx
Created August 14, 2018 18:40
Show Gist options
  • Select an option

  • Save olivx/dd2a0ea602320b1bc439e3eea78b912b to your computer and use it in GitHub Desktop.

Select an option

Save olivx/dd2a0ea602320b1bc439e3eea78b912b to your computer and use it in GitHub Desktop.
import time
from datetime import datetime , timedelta
from dateutil.rrule import rrule, MONTHLY, DAILY
date_start_obj = datetime(2018,05,18)
date_end_obj = datetime(2018,05,30)
# holidays = [datetime(2018,05,21).date(), datetime(2018,05,28).date(), datetime(2018,05,20).date()]
def get_working_days(date_start_obj, date_end_obj, holidays=[]):
many_holidays = 0
span = date_end_obj - date_start_obj
for i in xrange(span.days + 1):
_date = date_start_obj + timedelta(days=i)
if _date.date() in holidays and _date.weekday() in range(0, 5):
print _date.date()
many_holidays += 1
weekdays = rrule(DAILY, byweekday=range(0, 5), dtstart=date_start_obj, until=date_end_obj)
weekdays = len(list(weekdays))
# desconsiderar do dia start
return (weekdays -1) - many_holidays
get_working_days(date_start_obj, date_end_obj, holidays)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment