以下是一个示例代码,用于按照星期几和时间筛选日期:
import datetime
def get_dates_by_weekday_and_time(weekday, start_time, end_time):
# 获取当前日期
today = datetime.date.today()
# 计算起始日期
start_date = today + datetime.timedelta(days=(weekday - today.weekday()))
# 初始化日期列表
dates = []
# 循环遍历日期范围
current_date = start_date
while current_date <= today:
# 获取当前日期的时间
current_datetime = datetime.datetime.combine(current_date, datetime.time())
# 检查时间是否在范围内
if start_time <= current_datetime.time() <= end_time:
# 添加符合条件的日期到列表中
dates.append(current_date)
# 增加一天
current_date += datetime.timedelta(days=7)
return dates
# 示例调用
weekday = 4 # 星期四
start_time = datetime.time(9, 0) # 9:00 AM
end_time = datetime.time(12, 0) # 12:00 PM
filtered_dates = get_dates_by_weekday_and_time(weekday, start_time, end_time)
print(filtered_dates)
在上面的示例代码中,get_dates_by_weekday_and_time
函数接受三个参数:weekday
表示要筛选的星期几(0表示星期一,1表示星期二,依此类推),start_time
表示起始时间,end_time
表示结束时间。
函数首先获取当前日期,然后计算出距离当前日期最近的符合条件的起始日期。然后循环遍历日期范围,检查每个日期的时间是否在给定的时间范围内,如果是则将该日期添加到结果列表中。
示例调用中,将星期四(weekday = 4
)和时间范围9:00 AM到12:00 PM传递给函数,根据当前日期计算符合条件的日期列表,并打印输出。
下一篇:按星期几和时间筛选数据