2016-05-28 5 views
2

私は基本的なプログラムを作って、次の誕生日まで残っている日数を示していますが、ターミナルで実行すると入力値は整数ではない文字列を返しますか? Pythonでinput関数を使用すると、自動的に文字列値として返されませんか?"Strptime()"を使ってPythonで時間を表示する

import datetime 
    currentDate = datetime.date.today() 

    userinput = input("Please enter your birthday(MM.DD.YY)") 
    birthday = datetime.datetime.strptime(userinput, "%m/%d/%Y") 
    print(birthday) 
+0

これは、Python 3.xのでない... – jonrsharpe

答えて

2
  1. 使用%y(小文字)2桁の年
  2. をキャッチするあなたは、予想されるフォーマットについてユーザにアドバイスすべきである - あなたは「MM/DD/YY」を期待していますが、「MMを入力するようにユーザーに伝えます。 (ジャハーンギールが述べたようにraw_input使用python2のために、のpython3用)DD.YY」

は、このような違い使用何かを計算するには:

import datetime 
today = datetime.date.today() 

userinput = input("Please enter your birthday(MM/DD):") 
birthday = datetime.datetime.strptime(userinput, "%m/%d") 
birthday = datetime.date(year=today.year, month=birthday.month, day=birthday.day) 

if (birthday-today).days<0: 
    birthday = datetime.date(year=today.year+1, month=birthday.month, day=birthday.day) 

print("%d days to your next birthday!"%(birthday-today).days) 
+0

提案ありがとう@Guntherjena! –

2

代わりにraw_input()を使用してください。

+0

感謝を! @ジャハンギル –

関連する問題