- 論壇徽章:
- 0
|
今天作加班時(shí)間計(jì)算,將這個(gè)模塊整理,升級(jí)了一下:
[color="#008080"]# encoding:gb2312
[color="#008080"]#
[color="#008080"]# revision 2007.04.29 :
[color="#008080"]# 正則升級(jí)為帶組名,
[color="#008080"]# 升級(jí)局部變量命名規(guī)則,
[color="#008080"]# 升級(jí)itv2time返回值表達(dá)式
[color="#008080"]# revision 2007.03.31 :
[color="#008080"]# 啟動(dòng)版本,
[color="#008080"]# 基本功能實(shí)現(xiàn)
[color="#008080"]# you can use for :
[color="#008080"]# 計(jì)算與日期無(wú)關(guān)的時(shí)分秒級(jí)別的時(shí)間差
[color="#008080"]# 如計(jì)算加班時(shí)間,電影字幕時(shí)間修正
[color="#008080"]# timeItv.py
[color="#0000ff"]import [color="#800000"]re
[color="#008080"]# 將計(jì)時(shí)器"時(shí):分:秒"字符串轉(zhuǎn)換為秒數(shù)間隔
[color="#0000ff"]def [color="#000000"]time2itv(_sTime):
[color="#000000"]_sP[color="#008080"]=[color="#ff00ff"]"^(?P[0-9]+):(?P[0-5][0-9]):(?P[0-5][0-9])$"
[color="#000000"]_p[color="#008080"]=[color="#800000"]re[color="#008080"].[color="#808000"]compile[color="#000000"](_sP)
[color="#000000"]_mTime[color="#008080"]=[color="#000000"]_p[color="#008080"].[color="#808000"]match[color="#000000"](_sTime)
[color="#0000ff"]if [color="#000000"]_mTime:
[color="#000000"]t[color="#008080"]=[color="#808000"]map[color="#000000"]([color="#808000"]int[color="#000000"],_mTime[color="#008080"].[color="#808000"]group[color="#000000"]([color="#ff00ff"]'h'[color="#000000"],[color="#ff00ff"]'m'[color="#000000"],[color="#ff00ff"]'s'[color="#000000"]))
[color="#0000ff"]return [color="#000000"]3600[color="#008080"]*[color="#000000"]t[0][color="#008080"]+[color="#000000"]60[color="#008080"]*[color="#000000"]t[1][color="#008080"]+[color="#000000"]t[2]
[color="#0000ff"]else[color="#000000"]:
[color="#0000ff"]return [color="#ff00ff"]"[InModuleError]:time2itv(_sTime) invalid argument value"
[color="#008080"]# 將秒數(shù)間隔轉(zhuǎn)換為計(jì)時(shí)器"時(shí):分:秒"字符串
[color="#0000ff"]def [color="#000000"]itv2time(_iItv):
[color="#0000ff"]if [color="#808000"]type[color="#000000"](_iItv)[color="#008080"]==[color="#808000"]type[color="#000000"](1):
[color="#000000"]h[color="#008080"]=[color="#000000"]_iItv[color="#008080"]/[color="#000000"]3600
[color="#000000"]sUp_h[color="#008080"]=[color="#000000"]_iItv[color="#008080"]-[color="#000000"]3600[color="#008080"]*[color="#000000"]h
[color="#000000"]m[color="#008080"]=[color="#000000"]sUp_h[color="#008080"]/[color="#000000"]60
[color="#000000"]sUp_m[color="#008080"]=[color="#000000"]sUp_h[color="#008080"]-[color="#000000"]60[color="#008080"]*[color="#000000"]m
[color="#000000"]s[color="#008080"]=[color="#000000"]sUp_m
[color="#0000ff"]return [color="#ff00ff"]'%02i:%02i:%02i'[color="#008080"]%[color="#000000"](h,m,s)
[color="#0000ff"]else[color="#000000"]:
[color="#0000ff"]return [color="#ff00ff"]"[InModuleError]:itv2time(_iItv) invalid argument type"
[color="#0000ff"]if [color="#008080"]__name__==[color="#ff00ff"]"__main__"[color="#000000"]:
[color="#008080"]# 用法示例僅供測(cè)試
[color="#000000"]sTime[color="#008080"]=[color="#ff00ff"]"1223:34:15"
[color="#000000"]itv[color="#008080"]=[color="#000000"]time2itv(sTime)
[color="#0000ff"]print [color="#000000"]itv [color="#008080"]# 4404855
[color="#0000ff"]print [color="#000000"]itv2time(itv) [color="#008080"]# 1223:34:15
[color="#008080"]# !不合約定的參數(shù)
[color="#0000ff"]print [color="#000000"]time2itv([color="#ff00ff"]"12:34:95"[color="#000000"])
[color="#0000ff"]print [color="#000000"]time2itv([color="#ff00ff"]"sfa123"[color="#000000"])
[color="#008080"]# print time2itv(itv)
[color="#0000ff"]print [color="#000000"]itv2time([color="#ff00ff"]"451223"[color="#000000"])
[color="#0000ff"]print [color="#000000"]itv2time(sTime)
[color="#0000ff"]print [color="#000000"]itv2time(time2itv([color="#ff00ff"]'19:12:00'[color="#000000"]) [color="#008080"]- [color="#000000"]time2itv([color="#ff00ff"]'09:03:00'[color="#000000"]) )
本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/28253/showart_289137.html |
|