2016-11-24 87 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