>source

나는 발견했다비슷한 스레드 하나 그것은 나를 도울 것 같지만 내가하는 일에 완전히 적용되지 않는 것 같습니다.

임금 추적 프로그램을 작성 중이며 모든 시간 입력의 총 합계를 제공하기 위해 필요합니다. 이 한 가지 측면에서 작업하기 위해 훨씬 더 작고 요약 된 형태가 있습니다. 메인 프로그램은 모든 개별 시작 및 종료 시간을 사용자가 입력해야하므로 많은 시간을 절약 할 수 있습니다. 현재 상영 중 2 days, 22:00:00 출력에서와 같이 이상적으로 표시하는 것을 선호합니다. 70:00 , 시간과 분만 표시하고 불필요한 두 번째 부분을 제거합니다.

import datetime
def time_diff(a, b):  # Calculates time difference between start and finish
    return b - a
start = '10:00'
mon_start = datetime.datetime.strptime(start, '%H:%M')
finish = '20:00'
mon_fin = datetime.datetime.strptime(finish, '%H:%M')
mon_hours = time_diff(mon_start, mon_fin)
start = '10:00'
tue_start = datetime.datetime.strptime(start, '%H:%M')
finish = '20:00'
tue_fin = datetime.datetime.strptime(finish, '%H:%M')
tue_hours = time_diff(tue_start, tue_fin)
start = '10:00'
wed_start = datetime.datetime.strptime(start, '%H:%M')
finish = '20:00'
wed_fin = datetime.datetime.strptime(finish, '%H:%M')
wed_hours = time_diff(wed_start, wed_fin)
start = '10:00'
thu_start = datetime.datetime.strptime(start, '%H:%M')
finish = '20:00'
thu_fin = datetime.datetime.strptime(finish, '%H:%M')
thu_hours = time_diff(thu_start, thu_fin)
start = '10:00'
fri_start = datetime.datetime.strptime(start, '%H:%M')
finish = '20:00'
fri_fin = datetime.datetime.strptime(finish, '%H:%M')
fri_hours = time_diff(fri_start, fri_fin)
start = '10:00'
sat_start = datetime.datetime.strptime(start, '%H:%M')
finish = '20:00'
sat_fin = datetime.datetime.strptime(finish, '%H:%M')
sat_hours = time_diff(sat_start, sat_fin)
start = '10:00'
sun_start = datetime.datetime.strptime(start, '%H:%M')
finish = '20:00'
sun_fin = datetime.datetime.strptime(finish, '%H:%M')
sun_hours = time_diff(sun_start, sun_fin)
total_hours = mon_hours + tue_hours + wed_hours + thu_hours + fri_hours + sat_hours + sun_hours
print(total_hours)

  • 답변 # 1

    이:

    def time_diff(a, b):  # Calculates time difference between start and finish
        return b - a
    
    

    만약 a 이다 datetime.datetimeb 이다 datetime.datetime return datetime.timedelta 목적. 당신은 사용할 수 있습니다 .total_seconds 초 단위로 값을 얻는 방법입니다. 예를 들어 추가 계산에 사용할 수 있습니다

    import datetime
    total = datetime.timedelta(days=3,minutes=10)
    total_minutes = int(total.total_seconds()//60)
    hours, minutes = total_minutes // 60, total_minutes % 60
    print(hours, minutes)  # 72 10
    
    

  • 답변 # 2

    마지막에이 인쇄물을 사용하십시오.

    print(
        "{}:{:02d}".format(
            total_hours.days * 24 + total_hours.seconds // 3600,
            (total_hours.seconds // 60) % 60,
        )
    
    

  • 이전 python pandas - 그룹화 된 값 x의 처음 n 개 행 합계
  • 다음 int 1 만 [1, 23, 'blabla']의 목록 항목 인 경우 Python ''in operator ''가 float 10에 대해 'True'를 반환하는 이유는 무엇입니까?