Search code examples
pythondate-rangeweekday

how to get week date range (Monday-Sunday) for a date following in between that week(Monday-Sunday)


I want date range of Monday to Sunday for a particular date which i am giving. For example:-

if i give "2021-11-22" (Monday) (%Y-%m-%d) then i should get date range of "2021-11-22" to "2021-11-28". Another Case :- if i give any date between "2021-11-22" and "2021-11-28" (Monday - Sunday). Then it should give me the date range of (Monday - Sunday) ("2021-11-22" to "2021-11-28")

def returnDateRange(date):
    #date can be anything between "2021-11-22" and "2021-11-28"
    listOfDateRange = ["2021-11-22","2021-11-28"]
    return listOfDateRange

Solution

  • p_week = datetime.date.today().isocalendar()[1]
    p_year = datetime.datetime.today().year
    
    def getDateRangeFromWeek(p_year,p_week):
        date_string = str(p_year)+"-W"+str(p_week)+"-1"
        print(f'{p_year}-W{int(p_week )}-1')
        #firstdayofweek = datetime.datetime.strptime(f'{p_year}-W{int(p_week )}-1', "%Y W%W-%w").date()
        firstdayofweek = datetime.datetime.strptime(date_string, "%Y-W%W-%w").date()
        lastdayofweek = firstdayofweek + datetime.timedelta(days=6.9)
        return firstdayofweek, lastdayofweek```