• yundream
  • 2018-07-04 16:52:53
  • 2018-06-13 16:18:49
  • 54998

시간변환

AM/PM을 가지는 12시간 시간형식을 군대형식(24시간)으로 변환하라. AM/PM에 대한 시간 정의는 아래 그림을 참고 하자.

 AM/PM

  • 12시간 형식에서 AM 12:00:00은 "새벽 12시" 혹은 "오전 12"라고 표현한다. 반면 24시간 형식에서는 00:00:00 이 된다.
  • 12시간 형식에서 PM 12:00:00은 24시간 형식에서 12:00:00이다.

입력 형식

hh:mm:ssAM 혹은 hh:mm:ssPM 을 표준입력으로 입력한다. 값의 범위는 이다.

출력 포맷

"hh:mm:ss"를 출력한다. 값의 범위는

예제

입력이
07:05:45PM
일때 출력은
19:05:45
이다.

문제풀이

golang

에러처리는 하지 않았다.
package main

import (
    "bufio"
    "fmt"
    "os"
    "strconv"
    "strings"
)

func timeConversion(str string) string {
    times := make([]string, 3)
    times[0] = str[0:2]
    times[1] = str[3:5]
    times[2] = str[6:8]
    tail := str[8:10]

    switch tail {
    case "AM":
        mt, _ := strconv.Atoi(times[0])
        times[0] = fmt.Sprintf("%02d", func(arg int) int {
            if arg == 12 {
                return 0
            }
            return arg
        }(mt))

        return strings.Join(times, ":")
    case "PM":
        mt, _ := strconv.Atoi(times[0])
        times[0] = fmt.Sprintf("%02d", func(arg int) int {
            if arg == 12 {
                return 12
            }
            return arg + 12
        }(mt))
        return strings.Join(times, ":")
    default:
        return "error"
    }
}

func main() {
    reader := bufio.NewReader(os.Stdin)
    inputTime, _ := reader.ReadString('\n')
    inputTime = strings.Trim(inputTime, "\n")
    fmt.Println(timeConversion(inputTime))
}