2010-06-04 20 views
0

如何在Python中檢查日期是否出現在去年。即現在和(現在-1年)python日期出現在去年

由於

之間日期
+0

Python文檔是相當不錯的,並提供了很多例子:HTTP:/ /docs.python.org/library/datetime.html – 2010-06-04 09:08:35

+0

什麼是您的數據類型? – 2010-06-04 09:08:36

回答

2

這應該閏年工作:

>>> from datetime import date 
>>> today = date.today() 
>>> date(today.year - 1, today.month, today.day) < date(2009, 06, 05) <= today 
True 
>>> date(today.year - 1, today.month, today.day) < date(2009, 06, 04) <= today 
False 
>>> date(today.year - 1, today.month, today.day) < date(2010, 07, 04) <= today 
False 
2
In [10]: today=datetime.date.today() 

In [11]: datetime.date(2010,5,5) < today 
Out[11]: True 

In [12]: today-datetime.timedelta(days=365) <= datetime.date(2010,5,5) < today 
Out[12]: True 

In [13]: today-datetime.timedelta(days=365) <= datetime.date(2009,5,5) < today 
Out[13]: False 

編輯:如果today是閏年2000-2-29,然後today-datetime.timedelta(days=365)1999-3-1。如果你想在一年前爲1999-2-28那麼你可以使用

def add_years(date,num): 
    try: 
     result=datetime.date(date.year+num,date.month,date.day) 
    except ValueError: 
     result=datetime.date(date.year+num,date.month,date.day-1) 
    return result 

today=datetime.date(2000,2,29) 
print(add_years(today,-1)) 
# 1999-02-28 
+0

我可以把datetime.timedelta(年= 1),因爲有些年份將是閏年366天 – John 2010-06-04 09:13:51

+0

@John:不,你不能閱讀文檔。簽名是* datetime.timedelta([days [,seconds [,微秒[,毫秒[,分鐘[,小時[,星期]]]]]]])*有一天這麼重要嗎? – 2010-06-04 09:15:19

+0

是的,如果我想從現在起一年。 – John 2010-06-04 09:16:54