首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找出一个人在某一特定日期在他/她的办公室度过的总分钟数

如何找出一个人在某一特定日期在他/她的办公室度过的总分钟数
EN

Stack Overflow用户
提问于 2019-11-15 10:02:12
回答 1查看 114关注 0票数 0

如何找出一个人在某一特定日期在他/她的办公室度过的总分钟数。这是计算不同分钟的函数,但不起作用。

这是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

代码语言:javascript
复制
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分钟在办公室里。

  1. 于上午10:00就职(包括在内),并于上午10:30离开办公室(不包括在内)。他在办公室的时间是30分钟,
  2. 在上午11:30回到办公室(包括在内),12:30离开办公室(不包括在内)。他在本届会议上的任职时间是60分钟。--
EN

回答 1

Stack Overflow用户

发布于 2019-11-15 13:23:07

这是你的工作代码

代码语言:javascript
复制
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)

顺便说一句,还能用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58874576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档