2017-04-07 33 views
0

我是初學者製作一個小項目來計算一些東西。我需要我的程序根據日期使用某些數字。如果生產日期介於兩個日期之間,我希望程序做些事情。我想知道如何在日期時間模塊中使用if語句?這是我到目前爲止有:python datetime模塊和if語句

import datetime 
ManufacturingDate = input('ManufacturingDate: ') 
ManufacturingDate = datetime.datetime.strptime(ManufacturingDate,"%d/%m/%Y") 

if (ManufacturingDate >= datetime.date(1/1/2001) and ManufacturingDate <= datetime.date(31/1/2008)): 
    #do something 
+0

Python版本是什麼? – frederick99

+1

您還沒有提出任何問題! – tipanverella

+0

@ frederick99 python 3.5 –

回答

1

你有一個畸形的「間隔比較」和錯誤轉化爲Unix紀元時間。

您需要:

import datetime 

def unix_stamp(date): 
    return datetime.datetime.strptime(date,"%d/%m/%Y") 

ManufacturingDate = unix_stamp(input('Manufacturing Date: ')) 

if unix_stamp('1/1/2001') <= ManufacturingDate <= unix_stamp('31/1/2008'): 
    print 'hello world' 
else: 
    print 'oops' 

>>> 
Manufacturing Date: '1/1/1999' 
oops 
>>> 
Manufacturing Date: '1/1/2002' 
hello world 

ETA:沒趕上日期時間使用錯誤第一次就

+0

我得到這個錯誤?! if(datetime.date(1/1/2001)<= ManufacturingDate <= datetime.date(31/1/2008)): TypeError:整數參數預計,得到浮動 –

+0

啊第一次沒有捕捉到...看到Mitjans正確答案的答案 – litepresence

2

您將需要兩個邊界日期比較他們對你輸入的日期。爲此,您可以像使用輸入日期那樣使用datetime.strptime

然後應用if語句,看看你的日期是在區間:

from datetime import datetime 

date_format = "%d/%m/%Y" 

manufacturing_date = input('Manufacturing Date: ') 
manufacturing_date = datetime.strptime(manufacturing_date,date_format) 

if (datetime.strptime("1/1/2001", date_format) <= manufacturing_date < datetime.strptime("31/1/2008", date_format)): 
    #do something 
+0

非常感謝你的回答! 順便說一句,你忘了在if語句中輸入兩次datetime。我起初得到一個錯誤,但當你使用datetime.datetime.strptime(.............. 錯誤消失了。再次感謝您的幫助!! –

+1

@ ghassanal-ameiry編輯!如果你'從datetime import datetime',你不需要鍵入'datetime.datetime' :)考慮將問題標記爲已解決 –