Java 计算最大连续打卡的日期天数

	/**
     * 计算最大连续打卡的日期天数
     * 例如: [1,2,3,5,7]  则判定为连续有3次打卡成功
     */
    public static int continuousDay(List<LocalDate> dateList){
    
    
        if (dateList == null || dateList.size() ==0) {
    
    
            return 0;
        }
        dateList = dateList.stream().sorted(LocalDate::compareTo).collect(Collectors.toList());
        int maxContinuousDay = 1;
        int continuousDay = 1;
        for (int i = 0; i < dateList.size(); i++) {
    
    
            if (i == dateList.size() -1){
    
    
                break;
            }
            LocalDate date = dateList.get(i);
            LocalDate secondDate = dateList.get(i + 1);
            if (date.plusDays(1).equals(secondDate)){
    
    
                continuousDay ++;
            }else {
    
    
                if (continuousDay > maxContinuousDay){
    
    
                    maxContinuousDay = continuousDay;
                }
                continuousDay = 1;
            }
        }

        return maxContinuousDay;
    }

猜你喜欢

转载自blog.csdn.net/UserFrank/article/details/125186332