파이썬으로 밀리초를 시간, 분, 초로 변환하는 방법

파이썬으로 밀리초를 시간, 분, 초로 변환하는 방법
TILPosted On Jul 15, 20243 min read

안녕하세요!

시간 변환은 프로그래밍에서 흔한 작업 중 하나로, 기본 산술 연산과 문자열 처리에 대한 기본적인 이해를 개발하는 데 도움이 됩니다. 이 글에서는 Python을 사용하여 밀리초를 시간, 분, 초로 변환하는 방법을 살펴보겠습니다. 이 작업을 통해 루프, 조건문 및 함수 설계에 대한 지식을 확립할 수 있을 겁니다.

변환 이해하기

코드를 시작하기 전에 기본적인 시간 단위를 이해해보겠습니다:

  • 1 시간 = 3600000 밀리초
  • 1 분 = 60000 밀리초
  • 1 초 = 1000 밀리초

솔루션 디자인

주어진 밀리초 수를 시간, 분 및 초로 변환하는 것이 목표입니다. 다음은 단계별 접근 방식입니다:

  • 입력 유효성 검사: 입력이 0보다 큰 유효한 숫자인지 확인합니다.
  • 변환 로직: 밀리초를 시간, 분 및 초로 분해합니다.
  • 출력 형식 지정: 결과를 읽기 쉬운 형식으로 표시하며, 0이 아닌 시간 단위만 표시합니다.
  • 사용자 상호 작용: 사용자가 "exit"을 입력할 때까지 입력을 요청하는 루프를 구현합니다.

구현

시간 변환기 코드를 시작해보겠습니다:

def convert_milliseconds(ms):
    if ms < 1000:
        return f"방금 {ms} 밀리초"

    hours = ms // 3600000
    ms %= 3600000
    minutes = ms // 60000
    ms %= 60000
    seconds = ms // 1000
    result = []
    if hours > 0:
        result.append(f"{hours} hour/s")
    if minutes > 0:
        result.append(f"{minutes} minute/s")
    if seconds > 0:
        result.append(f"{seconds} second/s")
    return ' '.join(result)
def main():
    print("### 이 프로그램은 밀리초를 시간, 분, 초로 변환합니다 ###")
    print('(프로그램을 종료하려면 "exit"을 입력하세요)')
    while True:
        user_input = input("밀리초를 입력하세요 (0보다 커야 합니다): ")
        if user_input.lower() == "exit":
            print("프로그램 종료... 안녕히 가세요")
            break
        try:
            ms = int(user_input)
            if ms > 0:
                print(convert_milliseconds(ms))
            else:
                print("올바르지 않은 입력입니다 !!!")
        except ValueError:
            print("올바르지 않은 입력입니다 !!!")
if __name__ == "__main__":
    main()

  • 사용자 상호 작용:

    • 주요 기능은 사용자 입력을 처리하고 유효성을 검사합니다.
    • 사용자에게 밀리초를 요청하고 유효한지 확인한 후 convert_milliseconds 함수를 사용하여 변환합니다.
    • 사용자가 "exit"을 입력할 때까지 루프가 계속됩니다.