如何编写程序:输入365天制年日数返回对应月日日期
编写“第几天转日期”程序的实现方法
核心逻辑
先预设非闰年各月份的天数,通过循环逐个减去每个月的天数,直到剩余天数不超过当前月份的天数,此时就能确定对应的月份和具体日期。
具体实现(Python示例)
# 定义月份名称和对应天数(非闰年,共365天) months = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"] month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 获取用户输入并验证合法性 while True: try: day_of_year = int(input("请输入一年中的第几天(1-365之间的数字):")) if 1 <= day_of_year <= 365: break else: print("输入无效,请输入1到365之间的数字!") except ValueError: print("输入无效,请输入整数!") # 计算对应的月份和日期 month_index = 0 remaining_days = day_of_year while remaining_days > month_days[month_index]: remaining_days -= month_days[month_index] month_index += 1 # 输出结果 print(f"日期:{months[month_index]} {remaining_days}")
代码说明
- 输入验证:通过循环确保用户输入的是1-365之间的整数,避免非法输入导致程序出错。
- 日期计算:从第一个月开始,用剩余天数减去当前月的天数,直到剩余天数小于等于当前月天数,此时的月份和剩余天数就是目标日期。
- 示例测试:输入100时,程序会依次减去一月(31)、二月(28)、三月(31),剩余10天,对应四月10日,输出
日期:四月 10。
内容的提问来源于stack exchange,提问作者Alīna Rubcova
相关产品推荐
相关产品推荐

