有转发时间的任务

我在完成任务时遇到困难。该任务要求用户输入时间(1 到 12 之间),然后声明是上午还是下午,以及将其转发到多少小时。转发的时间还应该显示上午/ pm 时间戳取决于转发的数量。示例:


Input time: 8

am or pm : am

forward: 5

new time: 1pm

我已经尝试过这个:


time = eval(input('Input time(1-12):'))

ampm = eval(input('am or pm?'))

forward = eval(input('Forward:'))


if ampm == am:

    if time + forward > 24:

        new time = (time + forward)%24

        x = 'am'

    else:

        new time = (time + forward)%12

        x = 'pm'

    print('New time is:' , new time , x)


if ampm == pm:

    if time + forward > 12:

        new time = (time + forward)%12

        x = 'pm'

    else:

        new time = (time + forward)%24

        x = 'am'

    print('New time is:' , new time , x)


至尊宝的传说
浏览 1519回答 1
1回答

慕的地10843

我建议简单地将时间转换为 24 小时格式,转发,然后转换回 12 小时(上午/下午)格式。我是这样做的:time = int(input('Input time(1-12):'))ampm = input('am or pm?')forward = int(input('Forward:'))# first get the 24h formatted timetime_24 = time + 12 if ampm == 'pm' else time# then forward time to max 24, else start over from 0time_24 = (time_24 + forward) % 24# finally convert back to 12h(am/pm) formattime_12 = f'{time_24-12}pm' if time_24 > 12 else f'{time_24}am'# print out the forwarded timeprint(time_12)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python