如何检查期间(月)之间的2个日期

时间:2015-11-12 16:56:47

标签: java date

我有2个日期(start_dateend_date)和yyyy-MM-dd格式,我想检查一下在12月01日 - 3月31日之间的那个月然后做些什么。例如,我的start_date是2015-12-01或2016-02-01和end_date 2016-02-12然后写点东西。 我有这个

public void meethod(){
     DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
     Date startDate = null;
     Date endDate = null;

     try {
         startDate = df.parse(tf_start_date.getText());
         endDate = df.parse(tf_end_date.getText());
     } catch (ParseException e) {
         e.printStackTrace();
     }

     if( /* what goes here? */ ) {
        System.out.println("its between december-march");
     } else {

     }
 } 

tf_start_datetf_end_date是TextField,TextFields的值类似于2015-02-03

1 个答案:

答案 0 :(得分:2)

首先,您应该使用Calendar而不是Date。首先,您需要使用Calendar

构建Calendar.Builder
Calendar startCal = Calendar.Builder().setInstant(startDate);
Calendar endCal = Calendar.Builder().setInstant(endDate);

然后,您可以查看他们的月份,看看他们是否是您正在寻找的月份之一:

int startMonth = startCal.get(Calendar.MONTH);
if (startMonth == Calendar.DECEMBER ||
    startMonth == Calendar.JANUARY ||
    startMonth == Calendar.FEBRUARY ||
    startMonth == Calendar.MARCH)

endMonth类似。