알고리즘

시간 변환

haema_ 2023. 12. 11. 15:36
728x90

목표 : String "hhmmss" 형식으로 주어지는 시간에 n초를 더한 후 String으로 반환하기

ex) "233000", 1861  => 000101 

 

조건) DateFormat클래스 등에서 제공하는 변환 사용하지 않기

    public String addSeconds(String hms, int increaseSecond){
        int totalSecond=(convertToSecond(hms)+increaseSecond)%(3600*24);
        return convertToHms((totalSecond/3600),(totalSecond%3600)/60,totalSecond%60);

    }
    public int convertToSecond(String hms){
        int hour =Integer.parseInt(hms.substring(0,2));
        int minute = Integer.parseInt(hms.substring(2,4));
        int second = Integer.parseInt(hms.substring(4));
        return (hour * 3600) + (minute * 60) + second;


    }
    public String convertToHms(int hour, int minute, int second){
        return regex(hour)+ regex(minute)+ regex(second);
    }
    public String regex(int num){
        return String.format("%02d", num);
    }
    
    
    @Test
    public void test01(){
        String initialTime = "233000";
        int increaseSecond = 14234;
        Assertions.assertEquals(
                LocalTime.parse(initialTime, DateTimeFormatter.ofPattern("HHmmss"))
                        .plusSeconds(increaseSecond).format(DateTimeFormatter.ofPattern("HHmmss")),
                        addSeconds(initialTime, increaseSecond));
    }
반응형

'알고리즘' 카테고리의 다른 글

시소 짝꿍  (2) 2023.09.25
숫자 변환하기  (0) 2023.09.25