3

私は Python プログラミングの初心者であり、コーディングに問題があります。出力に年齢が日と秒で正しく表示されないためです (以下の「出力」に示すように)。

出力

Please enter your birthday
Year:1985
Month (1-12):5
Date:8
Your age is 10024 days, 0:00:00

この問題を解決する理由と方法をさらに支援できる人はいますか?

コード

print "Please enter your birthday "
bd_y=int(input("Year:"))
bd_m=int(input("Month (1-12):"))
bd_d=int(input("Date:"))

from datetime import date
now = date.today ()

age = date(int(bd_y), int(bd_m), int(bd_d))
print ("Your age is " + str(now-age))

前もって感謝します :)

4

4 に答える 4

8

datetime.date年、月、日のみを追跡します。時間も必要な場合は、次を使用する必要がありますdatetime.datetime

>>> from datetime import datetime
>>> str(datetime.now() - datetime(1985, 5, 8))
'10024 days, 8:51:08.441714'

減算の結果は、出力をカスタマイズするためdatetime.timedeltaの属性daysseconds、を持つオブジェクトです。microseconds

>>> delta = datetime.now() - datetime(1985, 5, 8)
>>> print "Your age is %d days and %d seconds" % (delta.days, delta.seconds)
Your age is 10024 days and 32125 seconds
于 2012-10-17T15:50:26.500 に答える
4

datetimeの代わりに使用する必要がありdateます。

インポートも必ず変更してください。

于 2012-10-17T15:49:30.723 に答える
2

以下の作品。あなたはint()に2回変換されましたが、それはそれを壊すものではありません。

提案されているように日時に切り替えることをお勧めしますが、以下はあなたが提供したもので動作しています。

print "Please enter your birthday"
bd_y = input("Year: ")
bd_m = input("Month (1-12): ")
bd_d = input("Date: ")

from datetime import date
now = date.today()

birthdate = date(int(bd_y), int(bd_m), int(bd_d))

age =  now-birthdate

print "Your age is %s" % age
于 2012-10-17T16:23:42.037 に答える
1
print("please enter your birthday")
bd_y=int(input("Year:"))
bd_m=int(input("Month(1-12):")) 
bd_d=int(input("Date:"))
from datetime import date
now = date.today ()

age = date(int(bd_y),int(bd_m), int(bd_d))
print ("your age is " +str(now-age))
于 2013-10-25T08:40:42.567 に答える