主题
知道任意两个日期,并计算两个日期之间的天数。
实现构想1
这里使用Python内置的模块time来解决问题。
我知道两个日期,格式是yyyy-mm-dd
使用time.strptime ()方法将日期和时间字符串分析为时间元组
使用time.mktime ()方法将时间的始祖转换为时间戳
根据与两个日期对应时间戳,得到两个日期不同的秒数,计算间隔天数
代码实现
导入时间
defdemo (第一天,第二天) :
time _ array1=time.strp time (第1天,' %Y-%m-%d ' ) )
timestamp_day1=int(Time.MkTime ) Time_array1) )
time _ array2=time.strp time (第2天,' %Y-%m-%d ' ) )
timestamp_day2=int(Time.MkTime ) Time_array2) )
result=(timestamp _ day2- timestamp _ day1)//60 //60 //24
返回结果
day1='2018-07-09 '
day2='2020-09-26 '
day _ diff=demo (第一天,第二天) )。
print ()两个日期之间的间隔天数) }.format (day _ diff ) ) ) )。
实现构想2
这里不用时间函数处理问题。 首先,可以计算每个日期从公元元年1月1日开始的总天数,求出两个日期的间隔天数。
有必要判断是不是闰年。 闰年的情况下,该年的天数为365天
用列表保存每月的天数。 在给定的两个日期中,如果年份是闰年,则2月的天数为28 1
根据给出的日期调查年月日,分别计算从公元元年1月1日开始的两个日期的合计天数
通过减去两个总天数,可以求出两个日期之间的天数
注意:
闰年的计算方法是“四年一闰,百年一闰,四百年再闰”。 也就是说,一般有以下两个条件。
不能被4整除,不能被100整除的是闰年
闰年能被400整除
代码实现
defis_leap_year(year ) :
if(year%4==0andyear0!=0) or year % 400==0:
返回1
else:
返回0
defget_days(year,month,day ) :
days=0
month _ days=[ 31、28、31、30、31、31、31、31、31、30、30、30、31 ]
ifis_leap_year(year ) :
month_days[1]=29
forIinrange(1,year ) :
year_day=365
fis_leap_year(I ) :
year_day=366
days =year_day
公式范围(month-1 ) :
days =month_days[m]
日期=日期
返回日期
defget_result(start_time,end_time ) :
res=end_time - start_time
返回RES
年1,month1,day1=2018,7,9
年2,month2,day2=2020,9,26
days1=get_days(year1,month1,day1) )。
days2=get_days(year2,month2,day2) )。
day_diff=get_result(days1,days2) )。
print ()两个日期之间的间隔天数) }.format (day _ diff ) ) ) )。