2016-11-24 114 views
0

答案可能不是,但我希望你不要介意,如果我只是要求确定。 datetime.date对象能以某种方式像这样使用?有没有办法使用datetime.date一年?

import datetime as dt 
is_summer = dt.date(month=7, day=1) <= dt.date.today() < dt.date(month=8, day=31) # wrong! 

目前,我改造datetime.date对象(month, day)元组,无论我的意思是“每年”。我正在考虑完全放弃datetime,并且只使用遍历的元组。

+0

写一个函数'my_date()'会返回一个'元组'吗? – ettanany

+0

@ettanany正如我写的,我正在考虑将所有日期表示为元组。我只是希望能在一个模块中找到所需的功能,它承诺:_“日期时间模块提供用于以简单和复杂的方式处理日期和时间的类”_ – VPfB

+0

@ Alex的答案符合您的需求吗?请注意,如果要继续使用同名的名称,还可以覆盖内置函数“date”。 – ettanany

回答

1

你目前的方法听起来不错。你也可以这样做:

def date_this_year(**kwargs): 
    return dt.date(year=dt.date.today().year, **kwargs) 

is_summer = date_this_year(month=7, day=1) <= dt.date.today() < date_this_year(month=8, day=31) 
+0

你的代码似乎很好可读,这个想法+1。但是,必须注意不要保存和重用date_this_year结果,因为它们可能会变成date_last_year。这就是为什么它对我没有多大帮助 - 但可以帮助其他读者。 – VPfB