# WorkingWeekend.py - working days and weekend days between 2 dates # Usage: @Python("Working_Weekend",DATE_COL1,DATE_COL2) # includes both dates, not just the gap # date1 and date2 can be in any order # ravisdxb@gmail.com def Working_Weekend(date1,date2): from datetime import datetime from datetime import timedelta # Mon=0, Tue=1, Wed=2, Thu=3, Fri=4, Sat=5, Sun=6 # weekends assumed to be Sat (5) and Sun (6) # if weekends are different, change the line below # for example, in Gulf countries weekends are Fri (4) and Sat (5) xdow1,xdow2=5,6 xfrom,xto='19000101','19000101' if date1>xfrom: xfrom=date1; if date2>xto: xto=date2; if xfrom>xto: xtemp=xfrom xfrom=xto xto=xtemp xfromdate=datetime.strptime(xfrom,'%Y%m%d') xtodate=datetime.strptime(xto,'%Y%m%d') xdays=(xtodate-xfromdate).days+1 xworking,xweekend=0,0 for i in range(0,xdays): xdate=xfromdate+timedelta(days=i) xdow=xdate.weekday() if xdow==xdow1 or xdow==xdow2: xweekend=xweekend+1 xworking=xdays-xweekend return '{0:d} working days, {1:d} weekend days'.format(xworking,xweekend)