Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get start date and end date of the week, given week number and year

Tags:

python

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):

     dlt = timedelta(days = (week - 1) * 7)
     d = date(year, 1, 1)
     return d + dlt, d + dlt + timedelta(days=6)

But with this function I assume that first week of the year starts with Monday.

like image 931
Andrew Ephron Avatar asked Jun 04 '15 23:06

Andrew Ephron


1 Answers

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

like image 180
koala Avatar answered Oct 07 '22 02:10

koala