Python: 得到时间dt所在周的周几
代码如下:
# -*- coding: utf-8 -*-
import datetime
def get_mon_date(dt):
"""
得到dt所在周的周一
Parameters
----------
dt : TYPE
DESCRIPTION.
Returns
-------
dt : TYPE
DESCRIPTION.
"""
one_day = datetime.timedelta(days=1)
while dt.weekday() != 0:
dt -= one_day
return dt
def nth_day_in_current_week(dt, n=0):
"""
得到dt所在周的周几, n=0代表周一, n=1代表周二,..., n=6代表周日
Parameters
----------
dt : TYPE
DESCRIPTION.
n : TYPE, optional
DESCRIPTION. The default is 0.
Returns
-------
dt : TYPE
DESCRIPTION.
"""
one_day = datetime.timedelta(days=1)
init_n = dt.weekday()
if init_n > n:
while dt.weekday() != n:
dt -= one_day
elif init_n < n:
while dt.weekday() != n:
dt += one_day
else:
return dt
return dt
current_day = datetime.date.today()
mon_date = get_mon_date(current_day)
print(mon_date)
mon_date = nth_day_in_current_week(dt=current_day, n=0)
fri_date = nth_day_in_current_week(dt=current_day, n=4)
sat_date = nth_day_in_current_week(dt=current_day, n=5)
sun_date = nth_day_in_current_week(dt=current_day, n=6)
print(mon_date)
print(fri_date)
print(sat_date)
print(sun_date)