>[success] # 计算某个时刻上周星期几日期 ---- 代码有问题 ~~~ 1.函数两个参数,第一个参数, dayname 是要求的上周星期几,第二个参数start_data 是从那个日期开始 2.注意 start_data 是datetime 对象 3.要计算上周的某一时刻计算公式 (7+ 开始日期的星期数 - 目标星期数)%7 4.datetime 的weekday 属性是可以求出当前的星期数 ~~~ ~~~ from datetime import timedelta, datetime weekdays = [ '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日' ] # 要计算 上周 的目标值 / 时间 datetime 对象 def get_previous_byday(dayname, start_data=None): if start_data is None: start_data = datetime.today() # 得到当前星期几 day_num = start_data.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_data - timedelta(days=days_ago) return target_date ~~~ >[success] # 使用python-dateutil 包 --3.6失效 ~~~ 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))) ~~~