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));
}
반응형