日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python时间差计算器时分秒_python 实现日期计算器

發(fā)布時(shí)間:2023/12/14 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python时间差计算器时分秒_python 实现日期计算器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目

輸入兩個(gè)日期,計(jì)算出兩個(gè)日期之間間隔(除去周末)多少天?

思路

1. 比較輸入的日期,那個(gè)在前面,哪個(gè)在后面。

2. 計(jì)算從前日期到后日期的天數(shù)

3. 考慮周末的情況

代碼

代碼為初學(xué)者手撕,難免會(huì)有錯(cuò)誤,歡迎批評(píng)指正。

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 #判斷日期前后關(guān)系 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)

改進(jìn)

1. 輸入與算法分離,輸入錯(cuò)誤應(yīng)該有異常拋出

2. 返回值情況函數(shù)在運(yùn)算過程中返回的信息在不增加復(fù)雜度的情況應(yīng)該進(jìn)可能的多

比如,可以根據(jù)思路寫一個(gè)函數(shù),返回的值包括含有周末,不含有周末,以及日期大小的情況

3. 函數(shù)構(gòu)造,可以合理構(gòu)造函數(shù)已達(dá)到復(fù)用的情況,比如,日期比較,方法定義,重載等方式的使用。

總結(jié)

以上是生活随笔為你收集整理的python时间差计算器时分秒_python 实现日期计算器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。