2014-12-02 93 views
-2

我認爲每個人都會在pi-Day(如果你不知道它是在每年的3月14日)的時候kwows。當你在python中得到如下結果時:日期(pi-Day)

(2016, 4, 4) 

(代表2016年4月4日)。在下一個pi-Day時,我如何快速找到答案。在這個例子中答案是:

(2017, 3, 14) 

有沒有我可以使用的公式?非常感謝!

+0

'next_year = current_year + 1'? – Kevin 2014-12-02 17:24:18

+0

'if(year,month,day)>(year,3,14):year + = 1'。 – 2014-12-02 17:28:06

回答

0

使用datetime module你會:

  1. 獲取今天的日期
  2. 獲取這幾年丕日(以自今天起一年)
  3. 如果這個日期是在過去,添加一個今年

在代碼:

from datetime import date 

def next_pi_date(): 
    today = date.today() 
    pi_date = date(today.year, 3, 14) 
    if pi_date < today: 
     pi_date = pi_date.replace(year=pi_date.year + 1) 
    return pi_date 

演示:

>>> from datetime import date 
>>> def next_pi_date(): 
...  today = date.today() 
...  pi_date = date(today.year, 3, 14) 
...  if pi_date < today: 
...   pi_date = pi_date.replace(year=pi_date.year + 1) 
...  return pi_date 
... 
>>> next_pi_date() 
datetime.date(2015, 3, 14) 
+0

太棒了!非常感謝Martijn。 – Victor 2014-12-02 17:34:22

0
import datetime 

dates = [ 
    datetime.datetime(2014,2,4), 
    datetime.datetime(2014,3,4), 
    datetime.datetime(2014,3,27), 
    datetime.datetime(2014,4,4), 
    ] 

for d in dates: 
    if d.month < 3: 
     print datetime.datetime(d.year, 3, 14) 
    elif d.month == 3 and d.day <= 14: 
     print datetime.datetime(d.year, 3, 14) 
    else: 
     print datetime.datetime(d.year+1, 3, 14) 

輸出:

2014-03-14 00:00:00 
2014-03-14 00:00:00 
2015-03-14 00:00:00 
2015-03-14 00:00:00 

這是檢查每月小於3(月),如果是,版畫今年的圓周率日。如果是3月份,它確保它不到14日。如果是在3月以後,它將在明年3月14日使用。