天数转整数年、月、日代码输出与样本不符问题求助
问题排查与修正
你的代码逻辑问题出在天数的计算步骤上:
- 当前代码直接用原始天数
num%30求剩余天数,但正确逻辑应该是:先算出扣除整年之后的剩余天数,再在这个剩余天数里扣除整月,最后剩下的才是最终的天数。
错误原因分析
以输入4330天为例:
- 整年数:
4330 // 365 = 11,扣除整年剩余天数4330 % 365 = 315 - 整月数:
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
相关产品推荐
相关产品推荐

