본문 바로가기
▶ Back-End/Java

LocalTime AVG

by 오늘도 코딩 2023. 9. 21.
728x90
반응형

LocalTime 평균 구하기

*parameter는 상황에 따라 변경해서 사용(LocalTime t1, LocalTime...ts)

 

 

/**
 * LocalTime AVG
 * 
 * @param List<LocalTime>
 * @return AVG LocalTime
 */
public static LocalTime getLocalTimeAVG(List<LocalTime> list) {

    LocalTime result = LocalTime.of(0, 0, 0);

    if (!list.isEmpty()) {
        long nanoSum = 0L;
        for (LocalTime time : list) {
            nanoSum += time.toNanoOfDay();
        }
        result = LocalTime.ofNanoOfDay(nanoSum / (list.size()));
    }

    return result;
}

 

 

*개선한 버전

  /**
 * LocalTime AVG
 * 
 * @param List<LocalTime>
 * @return AVG LocalTime
 */
public static LocalTime getLocalTimeAVG(List<LocalTime> list) {

    if (list.isEmpty()) {
        return LocalTime.of(0, 0, 0);
    }

    long nanoSum = list.stream()
            .mapToLong(time -> time.toNanoOfDay())
            .sum();

    return LocalTime.ofNanoOfDay(nanoSum / list.size());
}

 

 

728x90
728x90

'▶ Back-End > Java' 카테고리의 다른 글

Objcet to String  (0) 2023.09.21
@Value 사용법  (0) 2023.09.21
String to LocalTime  (0) 2023.09.21
String to LocalDate  (0) 2023.09.21
Ramdom LocalTime 생성  (0) 2023.09.21

댓글