2016-07-25 117 views
0

我想获取日历之间的日期,但由于某些原因,这不起作用。任何建议为什么?谢谢。如何获取日历中的日期?

public boolean verifyDate(Calendar cal) {  
    Calendar toDate = Calendar.getInstance(); 
    toDate.setTime(passToDate); 
    Calendar fromDate = Calendar.getInstance(); 
    fromDate.setTime(passFromDate); 
    return !((fromDate.after(cal) && toDate.before(cal)) || DateUtils.isSameDay(fromDate, cal) || DateUtils.isSameDay(toDate, cal)); 
} 
+0

你需要什么?两个日期之间的天数?或者验证日期?如果是,反对什么? –

+0

我需要从开始到结束才能获得一系列选定的日期。我写了一个JUnit测试,开始日期和结束日期都很好,但是当我尝试获得中间日期时,它不起作用。例如,如果我选择7月20日至7月25日,它会考虑日期:20,21,22,23,24和25 – Void

+0

我相信你有'fromDate'和'toDate'错误的方式。 –

回答

0

fromDate.after(CAL) - 将返回true如果fromDate将是cal,类似的事情与before后。

如果你想检查卡是两个日期之间使用:

return cal.after(fromDate) && cal.before(toDate) 
    && !(DateUtils.isSameDay(fromDate, cal) || DateUtils.isSameDay(toDate, cal)); 
+0

谢谢,这工作:) – Void

0
public static List<String> getDates(String startDate, String endDate) 
      throws ParseException, java.text.ParseException { 
     List<String> dateList = new ArrayList<String>(); 
     if (startDate == null || startDate.equals("") || endDate == null || endDate.equals("")) { 
      return null; 
     } 


     Calendar calendar = new GregorianCalendar(); 


     DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
     Date d1 = dateFormat.parse(startDate); 
     Date d2 = dateFormat.parse(endDate); 

     Calendar calendar2 = new GregorianCalendar(); 
     calendar2.setTime(d2); 
     calendar2.add(Calendar.DATE, 1); 
     calendar.setTime(d1); 

     while (calendar.getTime().before(calendar2.getTime())) 
     { 
      Date result = calendar.getTime(); 
      dateList.add(dateFormat.format(result)); 
      calendar.add(Calendar.DATE, 1); 
     } 


     return dateList; 
    } 
+0

100%工作代码和可重复使用的代码 – Ganesh

相关问题