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

天数转整数年、月、日代码输出与样本不符问题求助

问题排查与修正

你的代码逻辑问题出在天数的计算步骤上:

  • 当前代码直接用原始天数num%30求剩余天数,但正确逻辑应该是:先算出扣除整年之后的剩余天数,再在这个剩余天数里扣除整月,最后剩下的才是最终的天数。

错误原因分析

以输入4330天为例:

  1. 整年数:4330 // 365 = 11,扣除整年剩余天数4330 % 365 = 315
  2. 整月数:315 // 30 = 10,扣除整月剩余天数315 % 30 = 15
    但你的代码直接用4330 % 30 = 10,跳过了先扣整年的步骤,导致天数计算错误。

修正后的代码

user = int(input("请输入天数:"))

def convert_days(num):
    year = num // 365
    remaining_days_after_year = num % 365
    month = remaining_days_after_year // 30
    day = remaining_days_after_year % 30
    print(f"{year} 年, {month} 月 和 {day} 天")

convert_days(user)

测试输入4330,输出就是11 年, 10 月 和 15 天,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:15:27