Python的日子一响就有一天

2024-10-05 14:27:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图检查这个月的第一个日期和最后一个日期是否在一个日期范围内(范围是从当前日期开始的7天窗口)。下面是我要实现的一个例子:

import datetime, calendar

today = datetime.date.today()
date_list = [today + datetime.timedelta(days=x) for x in range(0, 7)]
lastDayOfMonth = today.replace(day=calendar.monthrange(today.year,today.month)[-1])
if 1 in [ date_list[i].day for i in range(0, len(date_list))]:
    print "we have first day of month in range"

elif lastDayOfMonth  in  [ date_list[i].day for i in range(0, len(date_list))]:
    print " we have last date of month in the range"

我想知道有没有更干净的方法?如果我在列表中找到了确切的日期,我也想打印它,但是我不知道如果不扩展if语句中的for循环并保存printdate_list[i]如果它符合我的条件,我不知道如何打印。因此,当我找到范围内的第一天时,我应该打印实际日期,而不是打印消息。上次约会也一样。在

提前谢谢!在


Tags: infortodaydatetimedatelenifrange
1条回答
网友
1楼 · 发布于 2024-10-05 14:27:13

在不需要使用迭代的情况下,我唯一能想到的是:

import datetime, calendar

today = datetime.date.today()
week_from_today = today + datetime.timedelta(days=6)
last_day_of_month = today.replace(day=calendar.monthrange(today.year,today.month)[-1])

if today.month != week_from_today.month:
    print datetime.date(week_from_today.year, week_from_today.month, 1)
elif today <= last_day_of_month <= week_from_today:
    print last_day_of_month 

从今天起,2016-06-02很难测试代码。
尝试将变量today改为另一天。我使用日期2016-05-25和{}来测试代码。在

要设置自定义日期:today = datetime.date(yyyy, m, d)

相关问题 更多 >