Java判断时间是否在几月几号之后

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

img


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;
    }
}


```java
/***
    * @Description:  date1 > date2 -> true
     * @param date1
    * @param date2
     * @param format yyyy-MM-dd"
    * @Date: 2022/2/18
    */
    public static Boolean dateAfterbyDtFormat(String date1, String date2,String format) {
        Date d1 = getDate(date1, format);
        Date d2 = getDate(date2, format);
        if(d1 != null && d2 != null) {
            return d1.after(d2);
        }
        return null;
    }


用上面的方法比较开始时间和 2021-11-15 ,如果 早于2021-11-15 , 开始时间设置为 2021-11-15,结束时间就是今天,带入数据库between and 查询

```