2016-11-21 2 views
0

ich nur noch heute und gestern Datum und wenn anderes Datum es Fehler gibt ausgewählt wird, soll .... Ich bin immer alles in Ordnung, aber es gibt kleine Ausgabe Hier ist mein Code:Ausgabe in Differenz Datum bekommt

if (flag == 0) { 
      if (getday(myCalendar.getTime()) == 1 || getday(myCalendar.getTime()) == 0) { 
       setvisitdate(); 
      } 
       Toast.makeText(getApplicationContext(), 
         "Selected date is not valid...", Toast.LENGTH_SHORT) 
         .show(); 

       flag = 0; 
       new DatePickerDialog(FvrActivity.this, date, 
         myCalendar.get(Calendar.YEAR), 
         myCalendar.get(Calendar.MONTH), 
         myCalendar.get(Calendar.DAY_OF_MONTH)).show(); 
      } 

hier ist Methode der getDay:

private int getday(Date selected_date) { 

     Calendar selected_cal = Calendar.getInstance(); 
     selected_cal .setTime(selected_date); 
     Calendar c = Calendar.getInstance(); 
     c.getTime(); 
     long diffInMillisec = c.getTimeInMillis() - selected_cal.getTimeInMillis(); 
     long diffInDays = TimeUnit.MILLISECONDS.toDays(diffInMillisec); 
     return (int) diffInDays; 
    } 

Angenommen Datum der heutigen ist 21/11/2016 ... I 21 Datum und 20 auswählen möchten einfach und nicht 22, sondern hier kann ich 22 also..Thank wählen Sie im Voraus zum Lösen.

+0

beetween 22 und 21 Differenz auch einen Tag. Ich schätze, Sie können .über() \ .belowe() überprüfen. Auch Datumsklasse wird ausreichen. new Date() ruft beispielsweise das aktuelle Datum ab. – user5599807

Antwort

1

Mit dieser Logik:

Calendar selected_cal = Calendar.getInstance(); 
selected_cal.setTime(selected_date); 

//For next day     
Calendar nextDay = Calendar.getInstance(); 
nextDay.add(Calendar.DATE, 1);//Adding one day 
nextDay.set(Calendar.HOUR_OF_DAY, 0);//Setting calendar for start hour of the day 
nextDay.set(Calendar.MINUTE, 0);//Setting calendar for start minute of the day 
nextDay.set(Calendar.SECOND, 0);//Setting calendar for start second of the day 

//For previous days 
Calendar previousDay = Calendar.getInstance(); 
previousDay.add(Calendar.DATE, -2);//Adding one day 
previousDay.set(Calendar.HOUR_OF_DAY, 23);//Setting calendar for start hour of the day 
previousDay.set(Calendar.MINUTE, 59);//Setting calendar for start minute of the day 
previousDay.set(Calendar.SECOND, 59);//Setting calendar for start second of the day 

if(selected_cal.getTimeInMillis()>=nextDay.getTimeInMillis() 
|| selected_cal.getTimeInMillis()<previousDay.getTimeInMillis()){ 
     //Show error 
}else{ 
     //Do what you want to do 
}