2025年4月15日 星期二 乙巳(蛇)年 正月十六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

Python计算两个日期相差的天数

时间:12-10来源:作者:点击数:19
城东书院 www.cdsy.xyz

有时候需要算两个日期相差多少天,如果两个日期相差大,真的去数肯定很麻烦,还得计算有的是有三十天,有的是三十一天,还有闰年和平年的区别。而这时候如果有一个方法或者函数,只需要输入要计算的两个日期即可,那就方便快捷了很多。

而Python正好可以提供这么一个方法函数,为什么选择Python,首先它的体积小,环境配置简单,其次配置了环境变量后,脚本可以像txt,word等一样独立运行。(代码所用的Python版本为Python3.6。)

首先导入需要用到的时间和日期库,创建日期相差的方法函数:

  • import time
  • import datetime
  • #计算两个日期相差天数,自定义函数名,和两个日期的变量名。
  • def Caltime(date1,date2):
  • #%Y-%m-%d为日期格式,其中的-可以用其他代替或者不写,但是要统一,同理后面的时分秒也一样;可以只计算日期,不计算时间。
  • #date1=time.strptime(date1,"%Y-%m-%d %H:%M:%S")
  • #date2=time.strptime(date2,"%Y-%m-%d %H:%M:%S")
  • date1=time.strptime(date1,"%Y-%m-%d")
  • date2=time.strptime(date2,"%Y-%m-%d")
  • #根据上面需要计算日期还是日期时间,来确定需要几个数组段。下标0表示年,小标1表示月,依次类推...
  • #date1=datetime.datetime(date1[0],date1[1],date1[2],date1[3],date1[4],date1[5])
  • #date2=datetime.datetime(date2[0],date2[1],date2[2],date2[3],date2[4],date2[5])
  • date1=datetime.datetime(date1[0],date1[1],date1[2])
  • date2=datetime.datetime(date2[0],date2[1],date2[2])
  • #返回两个变量相差的值,就是相差天数
  • return date2-date1

接着就是需要判断输入的日期时候为合法日期了,函数代码为:

  • #判断日期是否为合法输入,年月日的格式需要与上面对应,正确返回True,错误返回False,注意大小写。
  • def is_date(str):
  • try:
  • time.strptime(str,"%Y-%m-%d")
  • return True
  • except:
  • return False

最后就是运用函数,并输出到txt文档中:

  • if __name__=='__main__':
  • #提示信息请根据实际情况更改
  • print('请输入较早日期(格式例:xxxx-xx-xx):')
  • while True:
  • dt1=input()
  • if is_date(dt1)==True:
  • break
  • else:
  • print('请输入正确的日期!!!请重新输入!!!')
  • #print(is_date(dt1))
  • print('\n请输入较晚日期(格式为:xxxx-xx-xx):')
  • while True:
  • dt2=input()
  • if is_date(dt2)==True:
  • break
  • else:
  • print('请输入正确的日期!!!请重新输入!!!')
  • #将结果保存到当前目录下的t_day.txt,该txt文档会自动创建,名字可自定义。
  • with open('./t_day.txt','a') as f:
  • f.write('较早日期为:'+dt1+' 较晚日期为:'+dt2)
  • f.write('\n两个日期相差 ')
  • print (Caltime(dt1,dt2),file=f)
  • f.write('\n')
  • f.close
城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐