用python写一个计算两个日期之间的天数但不用python的自带的库
时间: 2024-06-12 18:04:48 浏览: 133
以下是用Python编写计算两个日期之间天数的示例代码:
```python
# 定义每个月的天数
month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# 计算两个日期之间的天数
def days_between_dates(date1, date2):
# 将日期字符串转换为年、月、日的整数
year1, month1, day1 = map(int, date1.split('-'))
year2, month2, day2 = map(int, date2.split('-'))
# 计算年份之间的天数
days = (year2 - year1) * 365
# 计算闰年的数量
leap_years = count_leap_years(year1, year2)
# 加上闰年天数
days += leap_years
# 计算月份之间的天数
days += count_days_in_months(year1, month1, day1, year2, month2, day2)
return days
# 计算年份之间的闰年数量
def count_leap_years(year1, year2):
count = 0
for year in range(year1, year2 + 1):
if is_leap_year(year):
count += 1
return count
# 判断是否是闰年
def is_leap_year(year):
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
return True
else:
return False
# 计算月份之间的天数
def count_days_in_months(year1, month1, day1, year2, month2, day2):
days = 0
# 如果是同一年,则计算月份之间的天数
if year1 == year2:
for month in range(month1, month2):
days += month_days[month - 1]
days += day2 - day1
# 如果不是同一年,则计算第一年剩余天数和最后一年已过天数,中间年份按照一年365天计算
else:
days += month_days[month1 - 1] - day1
for month in range(month1 + 1, 13):
days += month_days[month - 1]
for year in range(year1 + 1, year2):
if is_leap_year(year):
days += 366
else:
days += 365
for month in range(1, month2):
days += month_days[month - 1]
days += day2
return days
# 测试代码
date1 = '2021-06-01'
date2 = '2022-03-15'
days = days_between_dates(date1, date2)
print(days)
```
在上面的代码中,我们首先定义了每个月的天数,然后编写了三个函数来计算年份之间的闰年数量、判断是否是闰年以及计算月份之间的天数。最后,我们编写了一个主函数来计算两个日期之间的天数。通过这些函数的协作,我们就可以实现一个简单而实用的日期计算器了。
阅读全文