You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将24小时制的小时变量转换为12小时制格式?

问题分析

你的代码有三个核心问题:

  • 用while循环完全多余,24小时转12小时是固定的条件判断,不需要循环迭代
  • 转换逻辑错误:比如输入13,你的代码会算出13%12 +1 = 2,但实际13点应该是1点
  • 没处理0点(即24点)的情况,也没区分上午(AM)和下午(PM),不符合12小时制的完整格式
解决方法

直接用条件判断就能搞定,核心逻辑是:

  • 当小时为0或12时,12小时制显示12
  • 小时大于12时,减去12得到对应数值
  • 小时小于12时,保持原数值不变
  • 同时区分AM/PM:小于12是AM,其余是PM

完整代码示例

hour = 12  # 可以替换成0-23之间的任意值

# 计算12小时制的小时数
if hour == 0 or hour == 12:
    twelve_hour = 12
elif hour > 12:
    twelve_hour = hour - 12
else:
    twelve_hour = hour

# 判断上午下午
period = "AM" if hour < 12 else "PM"

# 打印结果
print(f"{twelve_hour} {period}")

测试不同情况

  • 输入0 → 输出12 AM
  • 输入10 → 输出10 AM
  • 输入12 → 输出12 PM
  • 输入15 → 输出3 PM
  • 输入23 → 输出11 PM

内容的提问来源于stack exchange,提问作者Dante Taviantz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 23:44:58