datetime模块是一个很强大的模块,使用也很方便,在这里简单使用该模块计算指定日期之间的间隔天数已经日期后移或者前推指定周数或者天数的新日期,下面是具体的实现,只是为了学习使用,欢迎交流:

#!usr/bin/env python
#encoding:utf-8'''
__Author__:沂水寒城
功能:日期计算
'''import datetime def cal_two_date_delta_days(one_date,two_date):'''计算两个日期之间的天数'''year1,month1,day1=[int(one) for one in one_date.split('/')]year2,month2,day2=[int(one) for one in two_date.split('/')]one=datetime.date(year1,month1,day1)two=datetime.date(year2,month2,day2)delta=str(abs(two-one)).split(',')[0]msg='{0}和{1}之间相隔{2}'.format(one_date,two_date,delta)return msgdef cal_specific_date_week(one_date):'''计算指定日期是第几周'''year1,month1,day1=[int(one) for one in one_date.split('/')]tmp=datetime.date(year1,month1,day1)info=list(tmp.isocalendar()) msg='{0}是第{1}周周{2}'.format(one_date,info[1],info[-1])return msgdef cal_specific_date_after_weeks_date(one_date,n_weeks=100):'''计算指定日期后n_weeks周后是某年某月某日'''year1,month1,day1=[int(one) for one in one_date.split('/')]tmp=datetime.date(year1,month1,day1)delta=datetime.timedelta(weeks=n_weeks)new_date=(tmp+delta).strftime("%Y-%m-%d %H:%M:%S").split(' ')[0]msg='{0}过{1}周后日期为:{2}'.format(one_date,n_weeks,new_date)return msgdef cal_specific_date_after_days_date(one_date,n_days=100):'''计算指定日期后n_days天后是某年某月某日'''year1,month1,day1=[int(one) for one in one_date.split('/')]tmp=datetime.date(year1,month1,day1)delta=datetime.timedelta(days=n_days)new_date=(tmp+delta).strftime("%Y-%m-%d %H:%M:%S").split(' ')[0]msg='{0}过{1}天后日期为:{2}'.format(one_date,n_days,new_date)return msgif __name__ == '__main__':date_list=[['2015/09/21','2017/12/18'],['2011/01/21','2016/06/21'],['2014/01/21','2012/3/08']]for one_list in date_list:print '*-'*50one_date,two_date=one_listprint cal_two_date_delta_days(one_date,two_date)print cal_specific_date_week(one_date)print cal_specific_date_after_weeks_date(one_date,n_weeks=100)print cal_specific_date_after_days_date(one_date,n_days=100)

结果如下:

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
2015/09/21和2017/12/18之间相隔819 days
2015/09/21是第39周周1
2015/09/21过100周后日期为:2017-08-21
2015/09/21过100天后日期为:2015-12-30
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
2011/01/21和2016/06/21之间相隔1978 days
2011/01/21是第3周周5
2011/01/21过100周后日期为:2012-12-21
2011/01/21过100天后日期为:2011-05-01
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
2014/01/21和2012/3/08之间相隔684 days
2014/01/21是第4周周2
2014/01/21过100周后日期为:2015-12-22
2014/01/21过100天后日期为:2014-05-01
[Finished in 0.3s]

感觉挺有意思的。

Python使用datetime模块进行简单的日期换算与计算相关推荐

  1. Python使用re模块进行正则匹配日期和时间

    Python使用re模块进行正则匹配日期和时间 目录 Python使用re模块进行正则匹配日期和时间 日期匹配 时间匹配 日期匹配 #导入需要的正则匹配的re包 # Load regex packag ...

  2. python的datetime模块需要装吗,Python datetime模块的介绍(日期格式化 时间戳)

    datetime模块常用的主要有下面这四个类:(要清楚import datetime : 导入的是datetime这个包,包里有各种类) 1. datetime.date   用于表示年月日构成的日期 ...

  3. python中datetime模块常用方法_Python中datetime的使用和常用时间处理

    datetime在python中比较常用,主要用来处理时间日期,使用前先倒入datetime模块.下面总结下本人想到的几个常用功能. 1.当前时间: >>> print dateti ...

  4. python中datetime模块_python中的datetime模块

    datetime是python中日期和时间管理模块,包含date,time,datetime,timedelta,datetime_CAPI,sys,timezone等类 datetime模块中包含的 ...

  5. python之datetime模块

    目录 time模块和datetime模块的关系 time模块 datetime模块 日期和时间数据类型 数据类型 datetime参数 字符串转换 格式说明 dateutil NaT 时间序列基础 日 ...

  6. python的datetime模块用法_Python3.5内置模块之time与datetime模块用法实例分析

    本文实例讲述了python3.5内置模块之time与datetime模块用法.分享给大家供大家参考,具体如下: 1.模块的分类 a.标准库(python自带):sys.os模块 b.开源模块(第三方模 ...

  7. python利用datetime模块计算时间差

    python中通过datetime模块可以很方便的计算两个时间的差,datetime的时间差单位可以是天.小时.秒,甚至是微秒,下面我们就来详细看下datetime的强大功能吧 今天写了点东西,要计算 ...

  8. python 的datetime模块使用

    1.datetime模块主要是5个类 date #日期类 年月日 datetime.date(year,month,day) time #时间类 时分秒 datetime.time(hour,minu ...

  9. 【python】datetime模块计算时间差

    一.问题背景 最近有小伙伴反馈接口平台的测试计划执行耗时显示有误,比如执行实际时长超过10s,但是报告中显示总耗时小于1s 显示耗时统计出现问题 二.问题排查 开始和结束时间是否有误 开始时间: 20 ...

  10. python中datetime模块是以什么时间为基础_Python基础之datetime模块

    Outline 构建时间对象实例 date实例的构造 time实例的构造 datetime实例的构造 timedelta对象的构造 tzinfo介绍 时间转换 时间对象转字符串 字符串转时间对象 时间 ...

最新文章

  1. 形象!Google Earth增实时雨雪演示功能
  2. Xamarin图表开发基础教程(10)OxyPlot框架支持的图表类型
  3. 宅久伤身?最新研究:独居让免疫系统变强了,但阿尔兹海默风险也变高了
  4. java 等待_Java并发之等待/通知机制
  5. mscoreei.dll没有被指定在windows上运行_在Windows上使用Docker运行.NetCore
  6. python是属于it界吗_转行IT行业,Python是不是一个好的选择?
  7. javafx 自定义控件_JavaFX自定义控件– Nest Thermostat第3部分
  8. (王道408考研数据结构)第七章查找-第一节:查找的基本概念、平均查找长度
  9. 数据分析中的可视化-常见图形
  10. 一种本地和云端相结合的语音识别系统及方法与流程
  11. Echarts地图动效制作
  12. 模式识别应用于哪些领域,模式识别技术的发展是大势所趋
  13. Prism4学习笔记(六):UI Composition
  14. Qt基于FFmpeg读取摄像头并进行H264编码
  15. 【python】二进制与十进制的转换
  16. 哈佛结构和冯·诺依曼结构的区别
  17. 上传App Store的截图尺寸
  18. 4.4 基金排行数据(Python)
  19. 语音识别技术的发展及难点分析
  20. 基于word2vec的虚假新闻检测系统

热门文章

  1. Mysql表的过滤查询
  2. Frame buffer分析 - fbmem.c【转】
  3. iOS开发中的11种锁以及性能对比
  4. 一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app
  5. Youzi2D推出开源HTML5游戏加速引擎
  6. 《C++程序设计POJ》《WEEK3 类和对象进阶》成员对象和封闭类/友元/this指针/常量成员函数...
  7. 执行计划:SET AUTOTRACE TRACEONLY
  8. 个人学习进度(第四周)
  9. 关于 API 定义 安全
  10. JQuery获取和设置Select选项常用方法总结 (转)