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

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

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

 
  1. import time

  2. import datetime

  3. #计算两个日期相差天数,自定义函数名,和两个日期的变量名。

  4. def Caltime(date1,date2):

  5. #%Y-%m-%d为日期格式,其中的-可以用其他代替或者不写,但是要统一,同理后面的时分秒也一样;可以只计算日期,不计算时间。

  6. #date1=time.strptime(date1,"%Y-%m-%d %H:%M:%S")

  7. #date2=time.strptime(date2,"%Y-%m-%d %H:%M:%S")

  8. date1=time.strptime(date1,"%Y-%m-%d")

  9. date2=time.strptime(date2,"%Y-%m-%d")

  10. #根据上面需要计算日期还是日期时间,来确定需要几个数组段。下标0表示年,小标1表示月,依次类推...

  11. #date1=datetime.datetime(date1[0],date1[1],date1[2],date1[3],date1[4],date1[5])

  12. #date2=datetime.datetime(date2[0],date2[1],date2[2],date2[3],date2[4],date2[5])

  13. date1=datetime.datetime(date1[0],date1[1],date1[2])

  14. date2=datetime.datetime(date2[0],date2[1],date2[2])

  15. #返回两个变量相差的值,就是相差天数

  16. return date2-date1

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

 
  1. #判断日期是否为合法输入,年月日的格式需要与上面对应,正确返回True,错误返回False,注意大小写。

  2. def is_date(str):

  3. try:

  4. time.strptime(str,"%Y-%m-%d")

  5. return True

  6. except:

  7. return False

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

 
  1. if __name__=='__main__':

  2. #提示信息请根据实际情况更改

  3. print('请输入较早日期(格式例:xxxx-xx-xx):')

  4. while True:

  5. dt1=input()

  6. if is_date(dt1)==True:

  7. break

  8. else:

  9. print('请输入正确的日期!!!请重新输入!!!')

  10. #print(is_date(dt1))

  11. print('\n请输入较晚日期(格式为:xxxx-xx-xx):')

  12. while True:

  13. dt2=input()

  14. if is_date(dt2)==True:

  15. break

  16. else:

  17. print('请输入正确的日期!!!请重新输入!!!')

  18. #将结果保存到当前目录下的t_day.txt,该txt文档会自动创建,名字可自定义。

  19. with open('./t_day.txt','a') as f:

  20. f.write('较早日期为:'+dt1+' 较晚日期为:'+dt2)

  21. f.write('\n两个日期相差 ')

  22. print (Caltime(dt1,dt2),file=f)

  23. f.write('\n')

  24. f.close

有的时候要统计两个日期之间的相距天数,可能有很多种方法,但使用datetime模块的datetime方法无疑是里面比较简单的,具体代码如下:

>>> import datetime
>>> d1 = datetime.datetime(2018,10,31)   # 第一个日期
>>> d2 = datetime.datetime(2019,02,02)   # 第二个日期
>>> interval = d2 - d1                   # 两日期差距
>>> interval.days                        # 具体的天数                     
94
>>> interval.seconds                     # 具体的秒数
0
>>>
从上面来看,还是相当简单。具体的days和seconds就是具体的差距的天数和额外的秒数。里面常用的方法有:

>>> filter(lambda x: not x.startswith("_"), dir(interval))
['days', 'max', 'microseconds', 'min', 'resolution', 'seconds', 'total_seconds']
>>>
如果是两个日期还是带时,分,秒的话,同样可以算出两者的相距天数及秒数.

>>> import datetime
>>> d1 = datetime.datetime(2018,10,31,10,30,00)
>>> d2 = datetime.datetime(2018,11,01,10,40,30)
>>> interval = d2 - d1
>>> interval                   # 第一项是天数,相距1天
datetime.timedelta(1, 630)
>>> interval.days              # 具体天数
1
>>> interval.seconds           # 额外秒数
630
>>> interval.total_seconds()   # 相差总秒数  
87030.0
>>>
 
————————————————
原文链接:https://blog.csdn.net/jerry_1126/article/details/83590783

【时间处理】Python 计算两个日期相差的天数相关推荐

  1. python计算两个日期相差的天数的代码

    如下资料是关于python计算两个日期相差的天数的代码,希望能对各位朋友有一些好处. d1 = datetime.datetime(2008, 2, 16) d2 = datetime.datetim ...

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

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

  3. 计算两个日期相差的天数

    JavaBean类 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calen ...

  4. mysql 查出相差年数_MySQL计算两个日期相差的天数、月数、年数

    MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF ...

  5. mysql计算两个月份之间的差值_MySQL计算两个日期相差的天数、月数、年数

    MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF ...

  6. java 计算日期相差天数_Java 计算两个日期相差的天数

    当我们需要计算两个日期相差的天数怎么办呢,今天我们就来用 Java 比较两个日期相差的天数,最简单的方法,直接上代码: 第一种,Date类型计算public static int differentD ...

  7. mysql时间相减得到天数保留两位_MySQL计算两个日期相差的天数、月数、年数

    MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF ...

  8. python 计算两个日期相差多少个月

    近期,由于业务需要计算两个日期之前相差多少个月.我在网上找了很久,结果发现万能的python,居然没有一个模块计算两个日期的月数,像Java.C#之类的高级语言,都会有(date1-date2).mo ...

  9. 计算两个日期相差的天数,Calendar用法

    2019独角兽企业重金招聘Python工程师标准>>> /** * 计算两个日期之间相差的天数 * @param date1 * @param date2 * @return */ ...

最新文章

  1. Python 之 matplotlib (十六)Animation动画
  2. VTK与Qt整合的示例
  3. Eclipse利用Maven的插件部署web项目到远程tomcat服务器
  4. ue4导入倾斜摄影_倾斜摄影入门必学|Context Capture建模软件工作流程
  5. 精读《手写 SQL 编译器 - 文法介绍》
  6. 隐藏与禁用硬盘分区——利用工具或注册表
  7. php 验证 e mail,PHP表单验证Name,E-mail,和URL-三体教程在线编辑器
  8. SQLite指南(1) -- SQLite的特性
  9. ubuntu 配置python,Redis,Mysql
  10. OOA、OOD、OOP 区别与思想
  11. 选择部门-选择员工(js)
  12. k8s core-dns 解析域名异常
  13. 关于正则表达式的补充(贪婪和懒惰)
  14. 五笔速成法--教你5小时学会五笔打字
  15. BAT批处理判断是否是文件夹,是则遍历
  16. Java工程师是做什么的 岗位职责都有哪些
  17. U3D-实时PVP小地图实现
  18. 常用邮箱POP,SMTP服务器列表
  19. JAVA-操作excel模版进行写入
  20. XSS注入进阶练习篇(三) XSS原型链污染

热门文章

  1. 2018年一季度总结
  2. 俊成码付出修复版源码
  3. 前端-网站性能优化——CDN加速
  4. 物理尺度上将计算机网络划分为,从物理尺度上将计算机网络划分为广域网WAN、城域网MAN和局域网LAN。( )...
  5. 网传毕业神会到底神不神? ICME仅剩72小时截稿
  6. 使用火绒后连接FTP服务器失败
  7. 现代卓越PMI-ACP精讲课笔记(五)——团队绩效
  8. YUS框架之us指令
  9. Java播放midi文件及加载sf2音色库示例
  10. 2021-10-24阳光分班之随机分班(后附源码)