如何找出一个人在某一特定日期在他/她的办公室度过的总分钟数。这是计算不同分钟的函数,但不起作用。
这是txt文件的一个例子.
苹果公司,2019,24/3,上午10:30,上午10:30,上午11:30,下午12:30
梨子,2019/2019,24/03,上午9:23,下午7:00
橙色,24/3/2019,11:57下午
橙色,25/3/2019,上午7:00(O),下午5:00,下午6:00
def count_total(timing, date):
count = 0
start = ''
if len(timing) == 1:
t = timing.split()
if t[1] == 'PM':
hh = int(t[0]) + 12
start = date + ' ' + str(hh) + ':00'
format = '%m/%d/%y %H:%M:%S'
startDateTime = datetime.datetime.strptime(start, format)
end = date + ' 24:00:00'
endDateTime = datetime.datetime.strptime(end, format)
return (endDateTime - startDateTime)2019年3月24日,苹果总共花了90分钟在办公室里。
发布于 2019-11-15 13:23:07
这是你的工作代码
timeList = [
["apple","24/03/2019","10:00 AM","10:30 AM","11:30 AM","12:30 PM"],
["pear","24/03/2019","09:23 AM","07:00 PM"],
["orange","24/03/2019","11:57 PM"],
["orange","25/03/2019","07:00 AM(O)","05:00 PM","06:00 PM"]
]
total = []
def count_total(list):
for i in range(len(timeList)):
if len(timeList[i])<2:
return False
name = timeList[i][0]
date = timeList[i][1]
timeSpent = 0
startTime = ""
for j in range(2,len(timeList[i])):
time = timeList[i][j].split(" ")[0]
zone = timeList[i][j].split(" ")[1]
if zone == "PM":
time = time.split(':')
if time[0]!= "12":
temp = int(time[0])+12
time = str(temp)+":"+time[1]
else:
time = time[0]+":"+time[1]
if zone.__contains__("(O)"):
hour = int(time.split(":")[0])
minute = int(time.split(":")[1])
if zone.__contains__("AM"):
timeSpent = timeSpent + (60*hour) + minute
elif zone.__contains__("PM"):
timeSpent = timeSpent + (60*hour) + minute + (12*60)
else:
if startTime == "":
startTime = time
else:
time = time.split(":")
startTime = startTime.split(":")
timeMin = int(time[0])*60+int(time[1])
startTimeMin= int(startTime[0])*60 + int(startTime[1])
temp = timeMin - startTimeMin
timeSpent = timeSpent+temp
startTime = ""
if startTime != "":
startTime = startTime.split(':')
startTimeMin = int(startTime[0])*60 + int(startTime[1])
dif = 24*60 - startTimeMin
timeSpent = timeSpent + dif
data = [name,date,timeSpent]
total.append(data)
if __name__ == "__main__":
count_total(timeList)顺便说一句,还能用。
https://stackoverflow.com/questions/58874576
复制相似问题