有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在Java中返回LocalTime的总和

它得不到会议记录。我需要几分钟后回来。 如何在Java中迭代Localtime时返回分钟数之和

public String userLunchHoursSum(String username) {
    List<WorkHour> workHours = workHourRepository.findWorkHoursByUsername(username);
    System.out.println(Arrays.toString(workHours.toArray()));
    long diff = 0;
    LocalTime lunchTime;
    long minutes = 0;
    LocalTime plusMinutes = null;
    for (WorkHour workHour : workHours) {
        lunchTime = workHour.getLunch_time().toLocalTime(); //00:30:00
        plusMinutes = lunchTime.plusMinutes(lunchTime.getMinute());
    }
    if(workHours.size()!= 0) {
        return Long.toString(plusMinutes.getMinute());
    }
    return "00:00";
}

getLunch_time返回java.sql.Time


共 (1) 个答案

  1. # 1 楼答案

    如前所述,您应该存储持续时间而不是本地时间。如果这是您无法控制的,请考虑迁移数据库或创建中间解析函数。我没有运行的示例代码,因为我不知道WorkHour中有什么

    // leave the string formatting to other functions
    public long userLunchHoursSum(String username) {
        List<WorkHour> workHours = workHourRepository.findWorkHoursByUsername(username);
        Duration totalDuration = Duration.ZERO;
        for (WorkHour workHour : workHours) {
            // save your time in the appropriate format beforehand
            // do not use local time to store duration.
            Duration lunchTime = Duration.between(LocalTime.MIDNIGHT, workHour.getLunch_time().toLocalTime()); //00:30:00
            totalDuration = totalDuration.plus(lunchTime);
        }
        return totalDuration.toMinutes();
    }