0
だから、私はこの演習に問題があり、定期的な時間への変換は、私は時間を変換し、午前と、午後にAMとPMをしなければなりません
ミリタリーから正規のフォーマットに時間を変換する関数を記述します。 例:
>>> time12hr('1619')
'4:19 p.m.'
>>> time12hr('1200')
'12:00 p.m.'
>>> time12hr('1020')
'10:20 a.m.'
最初の試み:良いのですが、pyschoolsは、午後であることをPMが必要です00 PM」:
from datetime import datetime
def time12hr(the_time):
hour = the_time[0:2]
d = datetime.strptime(the_time, "%H%M")
s = d.strftime("%I:%M %p")
return s
Test Cases Expected Result Returned Result
time12hr('1202') 12:02 p.m. 12:02 PM
time12hr('1200') 12:00 p.m. 12:00 PM
time12hr('0059') 12:59 a.m. 12:59 AM
time12hr('1301') 1:01 p.m. 01:01 PM
time12hr('0000') 12:00 a.m. 12:00 AM
これは'12を返します。またはAMを午前11時01分に返す必要があります。
2回目の試行:私は私のコードで間違ってやっている何
from datetime import datetime
def time12hr(input):
hours, minutes = int(input[0:2]), int(input[2:4])
if hours > 12:
afternoon = True
hours -= 12
else:
afternoon = False
if hours == 0:
# Special case
hours = 12
return '{hours}:{minutes:02d} {postfix}'.format(
hours=hours,
minutes=minutes,
postfix='p.m.' if afternoon else 'a.m.'
)
Test Cases Expected Result Returned Result
time12hr('1202') 12:02 p.m. 12:02 a.m. - this is not good
time12hr('1200') 12:00 p.m. 12:00 a.m. - this is not good
time12hr('0059') 12:59 a.m. 12:59 a.m.
time12hr('1301') 1:01 p.m. 1:01 p.m.
time12hr('0000') 12:00 a.m. 12:00 a.m.
?