需求:数据是从每年的11月15号到今天开始算的,但是你时间选择的是2021年10月1号,那么就需要你去查上一年11月15号到今天的数据,怎么写这个判断呢?
先获取开始时间,然后再判断开始时间是否是在11月15号之后的,如果不是,就查上一年11月15号到今天的数据,思路我都懂,但是不会写

需求:数据是从每年的11月15号到今天开始算的,但是你时间选择的是2021年10月1号,那么就需要你去查上一年11月15号到今天的数据,怎么写这个判断呢?
先获取开始时间,然后再判断开始时间是否是在11月15号之后的,如果不是,就查上一年11月15号到今天的数据,思路我都懂,但是不会写

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test {
public static void main(String[] args) {
String date = "2021-11-01";
//String date = "2021-12-01";
String[] dateRange = getDateRange(date);
if(dateRange != null && dateRange.length >0 ) {
String startDate = dateRange[0];
String endDate = dateRange[1];
System.out.println("开始时间:"+startDate);
System.out.println("结束时间:"+endDate);
}
}
private static String[] getDateRange(String date) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
Date parse1 = format.parse(date);
Calendar cal = Calendar.getInstance();
cal.setTime(parse1);
int year = cal.get(Calendar.YEAR);
String newDate = year+"-11-15";
Date parse2 = format.parse(newDate);
if(parse1.getTime() >= parse2.getTime()) {
return new String[]{newDate, date};
} else {
newDate = (year-1)+"-11-15";
return new String[]{newDate, date};
}
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}