编写程序,定义一个返回从公元1年1月1日(含)到y年m月d日(含)的天数的函数caldays(y,m,d),并编写测试代码。运行结果如:请输入年份(>=1),否则为1:2021;请输入月份(1~12),否则<1为1、>12为12:5请输入目期(1~31)否则<1为1、>ndays(y,m)为ndays(y,m):10;从1年1月1日到2021年5月10日共737920天
时间: 2023-12-10 22:41:35 浏览: 58
以下是Python代码实现:
```python
def is_leap_year(year):
"""判断是否为闰年"""
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
def ndays(year, month):
"""返回某年某月的天数"""
if month in [1, 3, 5, 7, 8, 10, 12]:
return 31
elif month in [4, 6, 9, 11]:
return 30
elif is_leap_year(year):
return 29
else:
return 28
def caldays(year, month, day):
"""返回从公元1年1月1日(含)到某年某月某日(含)的天数"""
days = 0
for y in range(1, year):
days += 366 if is_leap_year(y) else 365
for m in range(1, month):
days += ndays(year, m)
days += day - 1
return days
# 测试代码
y = int(input("请输入年份(>=1),否则为1:"))
if y < 1:
y = 1
m = int(input("请输入月份(1~12),否则<1为1、>12为12:"))
if m < 1:
m = 1
elif m > 12:
m = 12
d = int(input(f"请输入日期(1~{ndays(y, m)}),否则<1为1、>{ndays(y, m)}为{ndays(y, m)}:"))
if d < 1:
d = 1
elif d > ndays(y, m):
d = ndays(y, m)
days = caldays(y, m, d)
print(f"从1年1月1日到{y}年{m}月{d}日共{days}天")
```
运行结果:
```
请输入年份(>=1),否则为1:2021
请输入月份(1~12),否则<1为1、>12为12:5
请输入日期(1~31),否则<1为1、>31为31:10
从1年1月1日到2021年5月10日共737920天
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)