Method 1: fromdatetimeimportdatetime, timedeltaweekdays [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday] week (dayname, start_dateNone):... Method 1:
Python code
From datetime import datetime, timedelta
Weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday ',
'Friday', 'Saturday', 'Sunday']
Def get_previus_byday (dayname, start_date = None ):
If start_date is None:
Start_date = datetime. today ()
Day_num = start_date.weekday ()
Day_num_target = weekdays. index (dayname)
Days_ago = (7 + day_num-day_num_target) % 7
If days_ago = 0:
Days_ago = 7
Target_date = start_date-timedelta (days = days_ago)
Return target_date
Print (datetime. today ())
Print (get_previus_byday ('Monday '))
Print (get_previus_byday ('Monday', datetime (2016, 8, 28 )))
Method 2: Use the dateutil module
Python code
From datetime import datetime
From dateutil. relativedelta import relativedelta
From dateutil. rrule import *
D = datetime. now ()
Print (d)
Print (d + relativedelta (weekday = FR ))
Print (d + relativedelta (weekday = FR (-1 )))