你可以使用java.util.Datejava.util.Calendar来计算多个日期的平均时长。下面是一个示例函数:

import java.util.Date;
import java.util.Calendar;

public class AverageDurationCalculator {
    public static void main(String[] args) {
        // 日期示例:3天1小时20分19秒
        Date date1 = createDate(3, 1, 20, 19);
        Date date2 = createDate(2, 4, 30, 10);
        Date date3 = createDate(1, 10, 45, 55);
        
        Date averageDuration = calculateAverageDuration(date1, date2, date3);
        System.out.println('平均时长:' + formatDuration(averageDuration));
    }
    
    public static Date calculateAverageDuration(Date... dates) {
        Calendar totalDuration = Calendar.getInstance();
        
        for (Date date : dates) {
            Calendar duration = Calendar.getInstance();
            duration.setTime(date);
            
            totalDuration.add(Calendar.DAY_OF_YEAR, duration.get(Calendar.DAY_OF_YEAR));
            totalDuration.add(Calendar.HOUR_OF_DAY, duration.get(Calendar.HOUR_OF_DAY));
            totalDuration.add(Calendar.MINUTE, duration.get(Calendar.MINUTE));
            totalDuration.add(Calendar.SECOND, duration.get(Calendar.SECOND));
        }
        
        int averageDays = totalDuration.get(Calendar.DAY_OF_YEAR) / dates.length;
        int averageHours = totalDuration.get(Calendar.HOUR_OF_DAY) / dates.length;
        int averageMinutes = totalDuration.get(Calendar.MINUTE) / dates.length;
        int averageSeconds = totalDuration.get(Calendar.SECOND) / dates.length;
        
        return createDate(averageDays, averageHours, averageMinutes, averageSeconds);
    }
    
    public static Date createDate(int days, int hours, int minutes, int seconds) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DAY_OF_YEAR, days);
        calendar.set(Calendar.HOUR_OF_DAY, hours);
        calendar.set(Calendar.MINUTE, minutes);
        calendar.set(Calendar.SECOND, seconds);
        return calendar.getTime();
    }
    
    public static String formatDuration(Date duration) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(duration);
        
        int days = calendar.get(Calendar.DAY_OF_YEAR);
        int hours = calendar.get(Calendar.HOUR_OF_DAY);
        int minutes = calendar.get(Calendar.MINUTE);
        int seconds = calendar.get(Calendar.SECOND);
        
        return days + '天' + hours + '小时' + minutes + '分' + seconds + '秒';
    }
}

这个函数首先定义了一个calculateAverageDuration函数,它接受一个可变参数的Date数组。在函数内部,我们使用Calendar来计算总时长。然后,我们计算平均时长,即将总时长除以日期数量。最后,我们使用createDate函数创建一个新的Date对象,并返回它。

createDate函数接受天、小时、分钟和秒作为参数,并使用Calendar来设置相应的时间字段。它返回一个新的Date对象。

formatDuration函数用于将日期格式化为'X天X小时X分X秒'的字符串。它使用Calendar来获取天、小时、分钟和秒,并将它们拼接成字符串返回。

main函数中,我们创建了三个示例日期,并调用calculateAverageDuration来计算它们的平均时长。然后,我们使用formatDuration函数将结果格式化为字符串并打印出来。

Java 计算多个日期平均时长 - 详细代码示例

原文地址: http://www.cveoy.top/t/topic/fPF2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录