pbj0812의 코딩 일기

[PYTHON] 남은 업무시간 계산하기 본문

ComputerLanguage_Program/PYTHON

[PYTHON] 남은 업무시간 계산하기

pbj0812 2020. 11. 22. 00:18

0. 목표

 - python 을 이용하여 남은 업무시간 계산하기

1. 실습

 1) library 호출

import pandas as pd

 2) 기본 메타정보 입력

  - 마지막으로 퇴근한 요일

  - 일주일간 채워야 하는 근무시간

  - 제외시간(점심시간)

print('마지막으로 퇴근한 요일을 입력하세요.')
print('1부터 7까지의 숫자로 입력하세요(1 : 월요일 ~ 7 : 일요일)')
end_day = int(input())
print('일주일간 채워야 하는 시간을 입력하세요(자연수)')
total_time = int(input())
print('제외시간을 입력해 주세요(자연수)')
except_time = int(input())

  - 결과

마지막으로 퇴근한 요일을 입력하세요.
1부터 7까지의 숫자로 입력하세요(1 : 월요일 ~ 7 : 일요일)
2
일주일간 채워야 하는 시간을 입력하세요(자연수)
40
제외시간을 입력해 주세요(자연수)
1

 3) 퇴근시간 - 출근시간 계산

  - 퇴근시간이 출근시간 보다 작을 경우 24시간 추가(새벽 보정)

start = []
end = []
diff = []
diff_str = []
str_end_day = ['월', '화', '수', '목', '금', '토', '일']
for i in range(end_day):
    print(str_end_day[i] + "요일에 출근한 시간을 기입하세요.")
    print("00:00 의 형식으로 입력하세요.")
    tmp_start = input()
    start.append(tmp_start)
    print(str_end_day[i] + "요일에 퇴근한 시간을 기입하세요.")
    print("00:00 의 형식으로 입력하세요.")
    tmp_end = input()
    end.append(tmp_end)
    # 전후계산
    tmp_start_list = tmp_start.split(':')
    tmp_start_int = int(tmp_start_list[0]) * 60 + int(tmp_start_list[1])
    tmp_end_list = tmp_end.split(':')
    tmp_end_int = int(tmp_end_list[0]) * 60 + int(tmp_end_list[1])
    if tmp_end_int < tmp_start_int:
        tmp_end_int += 24 * 60
    diff_tmp = tmp_end_int - tmp_start_int - (except_time * 60)
    diff.append(diff_tmp)
    diff_str.append(str(diff_tmp//60) + "시간 " + str(diff_tmp%60) + "분")

  - 결과

월요일에 출근한 시간을 기입하세요.
00:00 의 형식으로 입력하세요.
10:20
월요일에 퇴근한 시간을 기입하세요.
00:00 의 형식으로 입력하세요.
01:20
화요일에 출근한 시간을 기입하세요.
00:00 의 형식으로 입력하세요.
11:02
화요일에 퇴근한 시간을 기입하세요.
00:00 의 형식으로 입력하세요.
18:49

 3) 테이블 시각화

time_table = pd.DataFrame({'출근 요일' : str_end_day[:end_day], '출근 시간' : start, '퇴근 시간' : end, '업무 시간' : diff_str})

  - 결과

 4) 남은 시간 계산

  - 업무시간 초과일 경우 초과근무 문구 표출

result = (total_time * 60) - sum(diff)
if result >= 0:
    print(str(result//60) + "시간 " + str(result%60) + "분 더 일하셔야 합니다.")
else:
    print(str(-result//60) + "시간 " + str(-result%60) + "분 초과근무 하셨습니다.")

  - 결과

19시간 13분 더 일하셔야 합니다.
Comments