已知1990年元旦是星期一,用函数实现:(1)求1990年元旦到2010年元旦中有几个元旦是星期一(包含1990年元旦星期一);(2)输出1990年到2010年元旦为星期一的年份。(3)从键盘输入一个日期(1990年元旦之后的日期),计算并输出该日期是星期的写作思路
时间: 2024-05-14 20:14:34 浏览: 132
1. 首先,需要了解每年的元旦是哪一天。由于平年和闰年的2月份天数不同,因此需要判断是否为闰年。
2. 可以用一个循环从1990年开始,每次累加一年,判断该年的元旦是星期几,如果是星期一,则计数器加1。
3. 在计数完成后,返回计数器的值即可。
4. 对于输出1990年到2010年元旦为星期一的年份,同样可以用一个循环,判断该年的元旦是否为星期一,如果是,则输出该年份。
5. 对于输入日期,可以用一个函数计算出该日期距离1990年元旦的天数,再将天数对7取模,最终得到该日期是星期几。
以下是Python代码实现:
```python
import datetime
def is_leap_year(year):
"""判断是否为闰年"""
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
return True
else:
return False
def count_newyear_monday():
"""计算1990年到2010年元旦中一共有几个星期一"""
count = 0
for year in range(1990, 2011):
if datetime.date(year, 1, 1).weekday() == 0:
count += 1
return count
def print_newyear_monday():
"""输出1990年到2010年元旦为星期一的年份"""
for year in range(1990, 2011):
if datetime.date(year, 1, 1).weekday() == 0:
print(year)
def calculate_weekday():
"""计算输入日期是星期几"""
input_date_str = input("请输入日期(格式为YYYY-MM-DD):")
input_date = datetime.datetime.strptime(input_date_str, "%Y-%m-%d").date()
days = (input_date - datetime.date(1990, 1, 1)).days
weekday = (days % 7 + 1) % 7 # 因为1990年1月1日是星期一,所以要加1
weekday_str = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
print("该日期是:", weekday_str[weekday])
if __name__ == "__main__":
count = count_newyear_monday()
print("1990年到2010年元旦中一共有", count, "个星期一")
print("1990年到2010年元旦为星期一的年份为:")
print_newyear_monday()
calculate_weekday()
```
示例输出:
```
1990年到2010年元旦中一共有 7 个星期一
1990年到2010年元旦为星期一的年份为:
1990
1996
2001
2007
请输入日期(格式为YYYY-MM-DD):2000-01-01
该日期是: 星期六
```
阅读全文