2013-03-05 59 views
0

@MartijnPieters的Python 3.2輸入日期功能

我想編寫一個函數,用戶輸入一個日期,並將其存儲與貨架功能和打印日期稱爲when曾幾何時而立之年天后。

我想這樣開始的一些簡單:

import datetime 

def getdate(): 
    date1 = input(datetime.date) 
    return date1 

getdate() 

print(date1) 

這顯然是行不通的。

我已經使用了上述問題的答案,現在我的程序工作的部分!謝謝! 現在爲下一部分:

我想寫一個簡單的程序,採取日期的方式,你指示我得到它,並增加30天。

import datetime 
from datetime import timedelta 

d = datetime.date(2013, 1, 1) 
print(d) 
year, month, day = map(int, d.split('-')) 
d = datetime.date(year, month, day) 
d = dplanted.strftime('%m/%d/%Y') 
d = datetime.date(d)+timedelta(days=30) 
print(d) 

這給了我一個錯誤: 年,月,日=地圖(INT,d.split( ' - ')) AttributeError的: 'datetime.date' 對象有沒有屬性 '分裂'

最終我想要的是01/01/2013 + 30天並打印01/30/2013。

在此先感謝!

回答

3

input()方法可以只有從終端取文本。因此,你必須找出解析該文本並將其變成日期的方法。

你可以去,在兩種不同的方式:

  • 要求用戶輸入3個部分單獨約會的,所以叫input()三次,把結果爲整數,並建立一個日期:

    year = int(input('Enter a year')) 
    month = int(input('Enter a month')) 
    day = int(input('Enter a day')) 
    date1 = datetime.date(year, month, day) 
    
  • 要求用戶在特定格式輸入日期,然後打開該格式爲三個數字的年,月,日:

    date_entry = input('Enter a date in YYYY-MM-DD format') 
    year, month, day = map(int, date_entry.split('-')) 
    date1 = datetime.date(year, month, day) 
    

這兩種方法是示例;例如,沒有包含任何錯誤處理,您需要仔細閱讀Python異常處理來自己弄清楚。 :-)

+0

'dateutil'可以自動解析各種字符串格式的日期。 – wRAR 2013-03-05 15:05:08

+0

@wRAR:當然,但這是下一個級別;重要的部分是瞭解input()是如何工作的。 – 2013-03-05 15:12:14

+0

感謝您的指導,我很欣賞:「您需要仔細閱讀Python異常處理以便爲您自己弄清楚。:-)」您迫使我學習;) – Gregory6106 2013-03-05 15:50:42