【发布时间】:2019-01-11 09:24:25
【问题描述】:
1.输入的天数应在15/10/1582之后
2. 应考虑闰年。
3.即使输入“ctrl + c”或字母,源代码也应该继续(使用try...except)
3。重复直到在“年份”中输入 0。
这是我试过的.....
while True:
year = int(input("Year: "))
if year == 0
break
month = int(input("Month: ")
day = int(input("Days: "))
我完全想不出如何解决这个问题,所以我想得到一些提示,我应该如何处理这个问题!
年:2019 月:0 日:12 只有一月~十二月
年:2019 月:1 天:0 天至少应为 1
年份:2019 月份:1 天:1 月 32 日至 31
年:2020 月:2 日:30 2020 年是闰年,但二月是闰年 29
年:2019 月:2 日:29 2019 年不是闰年,所以二月是 最多 28 个
年:1582 月:1 日:1 1582 年 1 月 1 日在公历之前 开始
年份:2019 月份:1 天:8 OK
年份:0
【问题讨论】:
-
提示: 在输入 year、month 和 day 作为输入后,您需要调用函数
validate_date(year, month, day)来检查输入的日期并发出所需的错误消息。您需要编写该函数。它将进行如下测试:if year < 1582:和if not (1 <= month <= 12):。尝试解决问题后,遇到任何困难都回来。 -
就像@BoarGules 说的那样,但您也可以创建一个 Date 对象并将日期作为一个整体进行比较,而不是单独检查年、月和日。
-
@ReshamWadhwa 这看起来像是初学者的练习,我怀疑是否允许 OP 做
import datetime。datetime对象会抱怨第 0 个月,但不会说明原因;同样是 2017 年 2 月 29 日。 -
您好,Kim,欢迎来到 SO。虽然在家庭作业问题上寻求帮助是完全可以的,但它是家庭作业的事实应该在问题的开头明确提及。此外,照原样,您的帖子不包含所有需要的信息,也没有解释您的问题是什么。请编辑您的帖子,使其包含一个明显的提及它是家庭作业,清楚地描述您必须做什么,以及关于您被困在哪里的明确问题。此外,不要要求完全编码的答案——这是你的职责——你应该期待的只是有用的提示。
-
@brunodesthuilliers 谢谢你告诉我这些事情。我刚加入SO我不知道。我马上修改:)
标签: python date error-handling