общее отклонение в данном наборе временных входов, и оно зависит от диапазона времени - PullRequest
0 голосов
/ 26 сентября 2019

я указал сначала диапазон, а затем второй, сколько входных данных требуется, поэтому мне нужно некоторое разностное время, которое не может быть точной разницей, иногда точная разница иногда не

    import datetime 

    def convert(seconds):
        seconds = seconds % (24 * 3600)
        hour = seconds // 3600
        seconds %= 3600
        minutes = seconds // 60
        seconds %= 60
        return "%d:%02d:%02d" % (hour, minutes, seconds)

    def validate(timeList):
        # timeList = ['0:00:00', '0:00:15', '9:30:56']
        totalSecs = 0
        for tm in timeList:
            timeParts = [int(s) for s in tm.split(':')]
            totalSecs+=(timeParts[0]*60+timeParts[1])*60 +timeParts[2]
        totalSecs, sec = divmod(totalSecs, 60)
        hr, min = divmod(totalSecs, 60)
        return "%d:%02d:%02d" % (hr, min, sec)


    format = '%H:%M:%S'                                                            
    n = int(input())                                                               
    diff_list = [[] for i in range(n)]                                             
    for i in range(n):                                                             
        m = int(input())                                                           
        for j in range(m):                                                                                                                                         
            start,end = map(str, input().split(" "))                                
            if start.startswith('24:'):                                             
                start = start.replace('24:00', '0:00')                              
            if end.startswith('24:'):                                               
                end = end.replace('24:00', '0:00')                                  
            startDateTime = datetime.datetime.strptime(start, format)               
            endDateTime = datetime.datetime.strptime(end, format)                                              
            diff = endDateTime -startDateTime                                       
            diff = convert(diff.total_seconds())                                    
            diff_list[i].append(diff)

    for timedata_list in diff_list:
         result = validate(timedata_list)
         print(result)                                         

Здесь яМне дан этот ввод: -
1
3
07:00:00 09:30:00 09:00:00 10:30:00 11:00:00 11: 30: 00

Мой вывод: -
4: 30: 00

Ввод: -
3
3
07:00:00 09: 30: 00
09:00:00 10: 30: 00
11:00:00 11: 30: 00
1
00:00:00 24:00:00 8
18:30:00 21: 30: 00
07:00:00 23: 00: 00
14:30:00 22: 00: 00
01:30:00 11: 30: 00
07:30:00 13: 00: 00
22:30:00 23: 30: 00
17:30:00 18: 00: 00
01:00:00 02:30:00

ожидаемый результат: -

04: 00: 00
24: 00: 00
22: 30: 00

...