あなたの最大の問題は、日付の取得方法です。 date()関数には3つの整数が必要です。日付(2017,10,10)
あなたが入力を使用する()あなたは文字列を取得:
input() #returns a string
あなたはまた、何らかの形で入力を分割することにより、この問題を解決する必要があるでしょう:
例えば
date(*[int(i) for i in input("When is your deadline?").split("-")])
しかし、あなたが本当にこのケースで欲しいのstrptimeを使用することです:あなたがこれを行う場合は、日付を得ることを意味
"2017-10-12".split("-") # returns ["2017","10","12"]
[int(i) for i in "2017-10-12".split("-")] # returns [2017,10,12]
。 strptime()は、それがどのように見えるかを定義することにより、日時に文字列を変換します。完全なスクリプトの
from datetime import datetime
datetime.strptime("20171012","%Y%m%d").date() # returns: datetime.date(2017, 10, 12)
例
from datetime import datetime
startdate_str = input("When do you intend to start? e.g.(2017-10-10)")
enddate_str = input("When is your deadline? e.g.(2017-10-11)")
startdate_dt = datetime.strptime(startdate_str,"%Y-%m-%d").date()
enddate_dt = datetime.strptime(enddate_str,"%Y-%m-%d").date()
numstudydays = enddate_dt - startdate_dt
print (numstudydays.days) # prints 1 for example inputs
推奨リンク
の様々な種類文字列をフォーマットする方法: https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior
現在、このコードがありますか? – SiHa
https://stackoverflow.com/questions/8419564/difference-between-two-dates – Marco