2013-07-17 33 views
5

我想定義一個變量作爲表示用戶輸入天數的日期時間對象。例如。如何在Python中創建一個日期對象,表示一組天數

numDays = #input from user 
deltaDatetime = #this is what I'm trying to figure out how to do 
str(datetime.datetime.now() + deltaDatetime) 

如果用戶輸入3作爲輸入,則此代碼將打印出代表今天3天的日期時間。任何想法如何做到這一點?我完全失去了解決這個問題的有效方法。

編輯:由於我的系統如何設置,存儲「deltaDatetime」值的變量必須是日期時間值。正如我在評論中所說的,3天的時間成爲1月3日的第0年。

+0

你在找這個? http://docs.python.org/2/library/datetime.html#timedelta-objects –

+0

嗡嗡聲,你是說只是最後一天,或者是那個範圍內的所有日子? –

+0

請注意,「代表設定天數的日期對象」不是日期,而是持續時間或類似日期。 –

回答

3
deltaDateTime = datetime.timedelta(days=3) 
+0

在我閒置的python 2.7中,返回:datetime.timedelta(3)或'3天,0:00:00'如果表示爲字符串。 –

+0

@Pawelmhm,但將它添加到'datetime'對象時會發生什麼?那時它變得有用。 –

+0

啊,沒錯,我知道你來自哪裏。 –

10

它使用從標準的datetime庫timedelta相當簡單:

import datetime 
numDays = 5 # heh, removed the 'var' in front of this (braincramp) 
print datetime.datetime.now() + datetime.timedelta(days=numDays) 
+0

'var numDays = 5' pythonic? ;) – alecxe

+0

某人今天寫了很多javascript :) –

+0

是的,在過去的幾周裏我一直在寫5種不同的語言,有時我忘記了什麼語言。 – avorum

4

使用timedelta

from datetime import datetime, timedelta 

days = int(raw_input()) 
print datetime.now() + timedelta(days=days) 
+0

在Python 2.7中返回:「AttributeError:'module'object has no attribute'now'」 –

+2

請按照提供的代碼運行代碼。確保你使用'from datetime import datetime,timedelta' import語句。 – alecxe

+0

你說得對,我的錯,對不起! –

相關問題