Java日付区間連続判定

1941 ワード

Java日付区間連続判定
1.需要
  • 開発会計期間維持API会計期間
  • 期間保守API[要求期間連続]
  • 2.分析
  • 定義日付フォーマットをyyyy-mm-ddとするためjava 8のLocalDate
  • を採用する
  • 区間連続をどのように判断するか:各区間の終了日+1は次の区間の開始日に等しい.[各日付の開始日が終了日より前であるか否かを判断することを記憶する]
  • 3.コアコード
    private void checkPeriodContinue(List periodList) {
            //           
            periodList.sort((Period p1, Period p2) -> p1.getStartDate().compareTo(p2.getStartDate()));
            for (int i = 0; i < periodList.size() - 1; i++) {
    
                if ((periodList.get(i).getStartDate().isBefore(periodList.get(i).getEndDate())) && !periodList.get(i).getEndDate().plusDays(1).equals(periodList.get(i + 1).getStartDate())) {
                    throw new CommonException("error.period.continue");
                }
            }
            //        
            if (!periodList.get(periodList.size() - 1).getStartDate().isBefore(periodList.get(periodList.size() - 1).getEndDate())) {
                throw new CommonException("error.period.continue");
            }
        }

    4.まとめ
           ,             ,            。[     ]
      ,               ,             ,    。        ,    ,  ;        ,        。            ,  。