How do I get the start date and end date of the week, given week number and year in python?
I\'ve tried this:
def get_start_end_dates(year, week):
I have fixed your function:
def get_start_end_dates(year, week):
d = date(year,1,1)
if(d.weekday()<= 3):
d = d - timedelta(d.weekday())
else:
d = d + timedelta(7-d.weekday())
dlt = timedelta(days = (week-1)*7)
return d + dlt, d + dlt + timedelta(days=6)
It gets the correct start and end day of the week in given year.
It also assumes that years with first day of the year on Friday, Saturday or Sunday have 1 week on next week. See here: http://en.wikipedia.org/wiki/Week
import datetime
import time
def getDateRangeFromWeek(p_year,p_week):
firstdayofweek = datetime.datetime.strptime(f'{p_year}-W{int(p_week )- 1}-1', "%Y-W%W-%w").date()
lastdayofweek = firstdayofweek + datetime.timedelta(days=6.9)
return firstdayofweek, lastdayofweek
#Call function to get dates range
firstdate, lastdate = getDateRangeFromWeek('2019','2')
print('print function ',firstdate,' ', lastdate)