python两列时间间隔计算器_python时间差计算器时分秒_python 实现日期计算器
题目
输入两个日期,计算出两个日期之间间隔(除去周末)多少天?
思路
1. 比较输入的日期,那个在前面,哪个在后面。
2. 计算从前日期到后日期的天数
3. 考虑周末的情况
代码
代码为初学者手撕,难免会有错误,欢迎批评指正。
import re MonthDay=(31,28,31,30,31,30,31,31,30,31,30,31) Weeks={'Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'} MondayDay='1900-01-01' FirstYear=0 def caculate(day1, day1_week_index, day2, weakends_enable): sp=re.compile('-') day1_list=sp.split(day1) day2_list=sp.split(day2) day1_list=list(map(lambda x:int(x),day1_list)) day2_list=list(map(lambda x:int(x),day2_list)) #判断输入的合理性 if (day1_list[0]<=FirstYear or day1_list[0]>9999) or(day2_list[0]<=FirstYear or day2_list[0]>9999): print 'years erro' return -1 if (day1_list[1]<=0 or day1_list[1]>12) or(day2_list[1]<=0 or day2_list[1]>12): print 'month erro' return -1 if day1_list[1] in (1,3,5,7,8,10,12): if (day1_list[2]<=0 or day1_list[2]>31): print 'day_31 erro' return -1 else: if day1_list[1]==2 and day1_list[2]>28: print 'day_28 erro' return -1 else: if day1_list[2]>30: print 'day_30 erro' return -1 if day2_list[1] in (1,3,5,7,8,10,12): if (day2_list[2]<=0 or day2_list[2]>31): print 'day_31 erro' return -1 else: if day2_list[1]==2 and day2_list[2]>28: print 'day_28 erro' return -1 else: if day2_list[2]>30: print 'day_30 erro' return -1 #判断日期前后关系 orient = 0 if ( (day2_list[0]6: weekcount=0 if weekcount <0: weekcount=6 else: res+=1 if day>MonthDay[month-1]: day=1 month+=1 if month>12: month=1 year+=1 return res if __name__=='__main__': print 'Usage: .py YYYY-MM-DD YYYY-MM-DD' first=raw_input('date1:') second=raw_input('date2:') weekends_exclude =1 week_cacualte_day = caculate(MondayDay,0,first,0) week_index=(week_cacualte_day%7) print '===================================' print 'There are [ %d ]days %s n between %s and %s' % (caculate(first,week_index, second,weekends_exclude), ('weekends ex' if (weekends_exclude) else ' '),first,second)
改进
1. 输入与算法分离,输入错误应该有异常抛出
2. 返回值情况函数在运算过程中返回的信息在不增加复杂度的情况应该进可能的多
比如,可以根据思路写一个函数,返回的值包括含有周末,不含有周末,以及日期大小的情况
3. 函数构造,可以合理构造函数已达到复用的情况,比如,日期比较,方法定义,重载等方式的使用。
python两列时间间隔计算器_python时间差计算器时分秒_python 实现日期计算器相关推荐
- python两列时间间隔计算器_在python中有效地比较两列中的每对日期
我有一个包含开始日期列和结束日期列的数据框.我想通过确保开始日期早于结束日期(即开始日期<:结束日期)来检查日期的完整性.我有超过14000个观察结果要运行.在 我有以下形式的数据:Sta ...
- python两列时间间隔计算器_计算两列之间的Pandas DataFrame时间差异(以小时和分钟为单位)...
熊猫的时间戳差异返回datetime.timedelta对象.可以使用* as_type *方法将其轻松转换为小时,就像这样 import pandas df = pandas.DataFrame(c ...
- python两列时间间隔计算器,Python“距离/时间/燃油计算器”帮助2
我有一个工作程序,根据我输入的信息,询问我想行驶多远(在几个问题中),并计算出我的旅行将持续多长时间,以及我将燃烧多少燃料.在 现在-我想在程序中使用插入时间而不是距离的选项,这样我就可以说我想以某个 ...
- python两列字符串合并_python两列字符串如何合并?
python两列字符串如何合并?,字符串,变量,方法,语句,就没 python两列字符串如何合并? python两列字符串如何合并? python两列字符串合并的方法: 1.在很多情况下,我们都需要合 ...
- python两列相乘_Python代码将两列相乘,然后用值创建新列
我正在编写一个python代码,它首先将分钟数据平均为小时数据.然后我想乘以小时数据中两列中的值,并用乘以的值创建一个新列.我被困在乘法步上了.import pandas as pd import n ...
- python处理时间格式时分秒_python将时分秒转换成秒的实例
处理数据的时候遇到一个问题,从数据库里导出的数据是时分秒的格式:hh:mm:ss ,现在我需要把它转换成秒,方便计算. 原数据可能分两种情况,字段有可能是文本字符串类型的,也有可能是时间类型,他们的处 ...
- python秒换算成时分秒_Python以分钟和秒为单位读取excel日期,时分秒
import xlrd from xlrd import xldate_as_tuple from datetime import datetime # 处理excel依赖xlrd模块 pip ins ...
- python获取当前时间时分秒_python获取当前时间的用法
1.先导入库:import datetime 2.获取当前日期和时间:now_time = datetime.datetime.now() 3.格式化成我们想要的日期:strftime() 比如:&q ...
- Excel计算将时间字符串转换为时间格式 年-月-日 时:分:秒 且计算时间差得到 时分秒 格式
Excel计算时间差时分秒 今天数据导出处理的时候碰见一个时间格式问题如下: 这个日期数据从数据库里导出来就是字符串了,由于取出来的还有一些很长的编码形式的字段怕被隐没,所以将数据粘贴之前我将exce ...
最新文章
- ARM7与ARM9的区别
- 如何创建修改分区表和如何查看分区表
- 3.19PMP试题每日一题
- 一个讲课截屏 清明DAY2
- oracle12 共享内存不存在,DBA警世录:Oracle的共享内存段
- 安利几个优质nlp开源项目
- 在div 底部显示背景图片
- 终极算法——第二章:终极算法
- 异常处理与MiniDump详解 4 MiniDump
- 计算机控制系统编程语言,可编程控制器常用的几种编程语言
- Markdown、.bib、LaTeX + Typora、Pandoc 管理论文参考文献
- 计算机术语int,整型(计算机语言)_百度百科
- mysql update convert_Oracle/云MySQL/MsSQL“大迁移”真相及最优方案
- UDS中数据的存储(FLASH/EEPROM/RAM)
- DNS是什么意思有什么作用了
- 诗鬼李贺:只活27岁,让我们争吵千年
- Python全栈(九)Web前端基础之3.CSS常见样式和选择器
- 2019年中国研究生数学建模竞赛D题 汽车行驶工况构建【信息交流】
- 一个栈的入栈序列是 a,b,c,d,e,则栈的不可能的输出序列是( ) 。
- java path.resolve_Java Path.resolve方法代碼示例
热门文章
- 字节跳动小程序tt.pay支付流程和遇到的问题
- 【ctf学习】RSA共模攻击
- 丝芙兰(Sephora)和悦诗风吟(Innisfree)如何用“购物篮”改善顾客购物体验
- 计算机三级网络技术最全知识点总结一
- 10款最佳跨浏览器测试工具,建议收藏
- OpenGL学习随笔(三)——2022.1.24
- SAP MM MARD 表里的Storage Bin 字段
- 数据科学家应当了解的五个统计基本概念
- 旧版微信内置浏览器x5核心无法打开,安装内核提示“内核下载失败115→115”,有相同情况吗
- Pandas 中 SettingwithCopyWarning 的原理和解决方案