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 实现日期计算器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 新建类与引用
- 下一篇: 用Python实现目录遍历及文件搜索