中国有句俗语叫“三天打鱼两天晒网”,某人从1990年1月1日起开始“三天打鱼两天晒网”,即工作三天,然后再休息两天。问这个人在以后的某一天中是在工作还是在休息。从键盘任意输入一天,编程判断他是在工作还是在休息,如果是在工作,则输出:He is working,如果是在休息,则输出:He is having a rest,如果输入的年份小于1990或者输入的月份和日期不合法,则输出:Invalid input。 输入格式: "%4d-%2d-%2d" 输出格式: "Invalid input" 或
时间: 2023-12-14 09:37:07 浏览: 130
"He is working" 或 "He is having a rest"
以下是Python语言的代码实现:
```python
import datetime
input_date_str = input("请输入日期,格式为\"%4d-%2d-%2d\":")
input_date = datetime.datetime.strptime(input_date_str, "%Y-%m-%d")
if input_date.year < 1990:
print("Invalid input")
else:
days_since_start = (input_date - datetime.datetime(1990, 1, 1)).days
if days_since_start % 5 < 3:
print("He is working")
else:
print("He is having a rest")
```
代码解释:
1. 首先通过`input()`函数从键盘读入一个字符串,即输入的日期,例如:"2022-05-20"。
2. 然后使用`datetime.datetime.strptime()`函数将字符串转换为`datetime.datetime`类型的对象,方便进行日期计算。
3. 如果输入的年份小于1990,直接输出"Invalid input"。
4. 否则,计算输入日期距离1990年1月1日的天数(注意,这里使用的是`days`属性,即计算两个日期之间相差的天数)。
5. 根据“三天打鱼两天晒网”的工作规律,只有在距离1990年1月1日工作的天数模5余数小于3时,这个人才是在工作状态,否则就是在休息状态。
6. 最后根据判断结果输出相应的提示信息。
阅读全文