2025-09-10:仓库迁移
This commit is contained in:
31
3.数字日期和时间/13.计算上周五的日期.py
Normal file
31
3.数字日期和时间/13.计算上周五的日期.py
Normal file
@@ -0,0 +1,31 @@
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
if __name__ == '__main__':
|
||||
weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
|
||||
|
||||
def get_previous_by_day(day_name, start_date=None):
|
||||
if start_date is None:
|
||||
start_date = datetime.today()
|
||||
|
||||
day_num = start_date.weekday()
|
||||
day_num_target = weekdays.index(day_name)
|
||||
|
||||
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
|
||||
|
||||
get_previous_by_day("Friday")
|
||||
|
||||
# 但是如果要经常这么干,请使用dateutil包
|
||||
d = datetime.now()
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from dateutil.rrule import *
|
||||
|
||||
# 找最近的周五,FR是rrule里的函数
|
||||
print(d + relativedelta(weekday=FR))
|
||||
|
||||
# 找上一个周五
|
||||
print(d + relativedelta(weekday=FR(-1)))
|
Reference in New Issue
Block a user