代码写的比较挫。。。。。。
private static void getDate (LocalDate as,LocalDate ae,LocalDate cs,LocalDate ce){
LocalDate startDate=null;
LocalDate endDate=null;
// as<ae ae<cs cs<ce
if(as.isBefore(ae) &&ae.isBefore(cs) &&cs.isBefore(ce)){
// null
}
// cs<ce ce<as as<ae
if(cs.isBefore(ce) &&ce.isBefore(as) &&as.isBefore(ae)){
// null
}
// as<cs<ae<ce
if(as.isBefore(cs) &&cs.isBefore(ae) &&ae.isBefore(ce)){
// cs--ae
startDate=cs;
endDate=ae;
}
// cs<as<ce<ae
if(cs.isBefore(as) &&as.isBefore(ce) &&ce.isBefore(ae)){
// as--ce
startDate=as;
endDate=ce;
}
// as ae ce
// cs
if(as.isBefore(ae) &&ae.isBefore(ce) &&ae.equals(cs)){
// ae--ae
startDate=ae;
endDate=ae;
}
// cs ce ae
// as
if(cs.isBefore(ce) &&ce.isBefore(ae) &&ce.equals(as)){
// as--as
startDate=as;
endDate=as;
}
// as ce ae || as cs ae || as cs ce ae
// cs || ce ||
if(
(as.isBefore(ce) &&ce.isBefore(ae) &&as.equals(cs))
|| (as.isBefore(cs) &&cs.isBefore(ae) &&ae.equals(ce))
|| (as.isBefore(cs) &&cs.isBefore(ce) &&ce.isBefore(ae))
){
// cs--ce
startDate=cs;
endDate=ce;
}
// as ae ce || cs as ae || as ae || cs as ae ce
// cs || ce || cs ce ||
if(
(as.isBefore(ae) &&ae.isBefore(ce) &&as.equals(cs))
||(cs.isBefore(as) &&as.isBefore(ae) &&ae.equals(ce))
||(as.isEqual(cs) &&ae.equals(ce))
||(cs.isBefore(as) &&as.isBefore(ae) &&ae.isBefore(ce))
){
// as--ae
startDate=as;
endDate=ae;
}
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
System.out.println(startDate.format(df)+"--"+endDate.format(df));
}
验证日期如下:
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDate as = LocalDateTime.parse("2019-07-05 00:00:00",df).toLocalDate();//影片-首映日期
LocalDate ae = LocalDateTime.parse("2019-09-28 00:00:00",df).toLocalDate();;//影片-落幕日期
// LocalDate cs = LocalDateTime.parse("2019-10-01 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-10-20 00:00:00",df).toLocalDate();;//影城-结束日期
// //空
//
// LocalDate cs = LocalDateTime.parse("2019-06-01 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-07-01 00:00:00",df).toLocalDate();;//影城-结束日期
// //空
//
// LocalDate cs = LocalDateTime.parse("2019-09-01 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-10-20 00:00:00",df).toLocalDate();;//影城-结束日期
// //9.1-9.28
//
// LocalDate cs = LocalDateTime.parse("2019-06-03 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-08-05 00:00:00",df).toLocalDate();;//影城-结束日期
// //7.5-8.5
//
// LocalDate cs = LocalDateTime.parse("2019-08-03 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-09-06 00:00:00",df).toLocalDate();;//影城-结束日期
// //8.3-9.6
//
// LocalDate cs = LocalDateTime.parse("2019-06-05 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-10-20 00:00:00",df).toLocalDate();;//影城-结束日期
// //7.5-9.28
//
// LocalDate cs = LocalDateTime.parse("2019-09-28 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-10-20 00:00:00",df).toLocalDate();;//影城-结束日期
// //9.28-9.28
//
// LocalDate cs = LocalDateTime.parse("2019-06-03 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-07-05 00:00:00",df).toLocalDate();;//影城-结束日期
// //7.5-7.5
//
// LocalDate cs = LocalDateTime.parse("2019-07-05 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-08-03 00:00:00",df).toLocalDate();;//影城-结束日期
// //7.5-8.3
//
// LocalDate cs = LocalDateTime.parse("2019-08-01 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-09-28 00:00:00",df).toLocalDate();;//影城-结束日期
// //8.1-9.28
//
// LocalDate cs = LocalDateTime.parse("2019-07-05 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-10-20 00:00:00",df).toLocalDate();;//影城-结束日期
// //7.5-9.28
//
// LocalDate cs = LocalDateTime.parse("2019-06-05 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-09-28 00:00:00",df).toLocalDate();;//影城-结束日期
// //7.5-9.28
//
// LocalDate cs = LocalDateTime.parse("2019-07-05 00:00:00",df).toLocalDate();//影城-开始日期
// LocalDate ce = LocalDateTime.parse("2019-09-28 00:00:00",df).toLocalDate();;//影城-结束日期
// //7.5-9.28