chemtech
@chemtech
Линуксойд, DevOps

Как правильно переводить AM/PM время в 24ч формат в golang?

Пытаюсь решить задачу
https://www.hackerrank.com/challenges/time-convers...
Код:
func timeConversion(s string) string {
    format  := s[len(s)-2:]
    strHour := s[:2]
    hour, err := strconv.Atoi(strHour)
    if err != nil {
        fmt.Println(err)
    }
    if format == "AM" && hour == 12 {
        return "00" + s[2:len(s)-2]
    }
    if format == "PM" && hour == 12 {
        return "12" + s[2:len(s)-2]
    }
    if format == "PM" {
        hour = hour + 12
    }
    return strconv.Itoa(hour) + s[2:len(s)-2]
}


Падают 2 теста.
This code have 2/10 test cases failed :(

Какие тестовые случаи я мог забыть?
Проверил 12:00:00PM, 12:01:00PM, 12:00:00AM, 12:01:00AM.
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
Midnight is 12:00:00AM on a 12-hour clock, and 00:00:00 on a 24-hour clock.
Noon is 12:00:00PM on a 12-hour clock, and 12:00:00 on a 24-hour clock.


веселенькое условие
всегда считал наоборот
(P.S. не только я)
Ответ написан
Комментировать
chemtech
@chemtech Автор вопроса
Линуксойд, DevOps
Заменил
strconv.Itoa(hour) + s[2:len(s)-2]
на
fmt.Sprintf("%02d",hour)+s[2:len(s)-2]

И тесты прошли
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы