java 查询最长连续天数util

package com.wyz.chengdieyi.boxingapp.util;

import java.time.LocalDate;
import java.util.List;
import java.util.stream.Collectors;

public class CountDayUtil {
          
   

    /**
     * 查询最长连续天数
     * @param dateList
     * @return
     */
    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 maxCountDay = 1;
        int countDay = 1;
        for (int i= 0; i < dateList.size();i++){
          
   
            if (i==dateList.size()-1){
          
   
                if (maxCountDay<countDay){
          
   
                    maxCountDay = countDay;
                }
                break;
            }
            if (dateList.get(i).plusDays(1).compareTo(dateList.get(i+1))== 0){
          
   
                countDay ++;
                continue;
            }
            if (maxCountDay<countDay){
          
   
                maxCountDay = countDay;
            }
            countDay = 1;
        }
        System.err.println("最长连续天数"+maxCountDay);
        return maxCountDay;
    }
}
经验分享 程序员 微信小程序 职场和发展