2016-07-25 7 views
0

Ich möchte die Daten zwischen den Kalender bekommen, aber aus irgendeinem Grund funktioniert das nicht. Irgendwelche Vorschläge warum? Vielen Dank.Wie erhalten Sie die Kalenderdaten dazwischen?

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

Was brauchen Sie? Die Anzahl der Tage zwischen zwei Daten? Oder um ein Datum zu verifizieren? Wenn ja, gegen was? –

+0

Ich brauche eine Reihe von ausgewählten Daten, von Anfang bis Ende. Ich habe einen JUnit-Test geschrieben und die Start- und Endtermine funktionieren gut, obwohl es nicht funktioniert, wenn ich versuche, das mittlere Datum zu bekommen. Wenn ich zum Beispiel den 20. Juli bis zum 25. Juli wähle, werden die Daten berücksichtigt: 20, 21, 22, 23, 24 und 25 – Void

+0

Ich glaube, Sie haben "fromDate" und "toDate" falsch herum. –

Antwort

0

fromDate.after (cal) - wird true wenn fromDate zurückkehren wird mit before nach dem cal, etwas Ähnliches sein.

Wenn Sie überprüfen wollen, dass cal zwischen zwei Terminen ist verwenden:

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

Danke, das hat funktioniert :) – 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% Arbeitscode und wiederverwendbaren Code – Ganesh

Verwandte Themen