2016-10-19 6 views
-2

Я получаю две даты из календарей. Я пишу в построитель строк. Я хочу получить разницу между двумя датами, и я хочу сохранить количество дней, оставшихся между моментами, кроме выходных.Разница Android между двумя датами?

private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { 

     // when dialog box is closed, below method will be called. 
     public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { 


      year = selectedYear; 
      month = selectedMonth; 
      day = selectedDay; 

      if (cur == DATE_DIALOG_ID) { 
       // set selected date into textview 
       permitDate = new StringBuilder().append(day).append(".").append(month + 1).append(".").append(year).append(" ").toString(); 
       tvDisplayDate.setText("Date : " + permitDate); 

      } else { 
       startDate = new StringBuilder().append(day).append(".").append(month + 1) .append(".").append(year).append(" ").toString(); 
       tvDisplayDate2.setText("Date : " + startDate); 


      } 

     } 
    }; 
+1

для таких соображений вы должны использовать API-интерфейс календаря java – Jens

+0

Можно ли обойтись без использования API-интерфейса? –

+0

Не пытайтесь изобретать велосипед. Постройте существующие решения. Как AndroidThreeTenBp или Joda-время. Вы уменьшите количество раз, когда вы будете ловить голову на стене. –

ответ

0
Calendar thatDay = Calendar.getInstance(); 
thatDay.set(Calendar.DAY_OF_MONTH,25); 
thatDay.set(Calendar.MONTH,7); // 0-11 so 1 less 
thatDay.set(Calendar.YEAR, 1985); 

Calendar today = Calendar.getInstance(); 

long diff = today.getTimeInMillis() - thatDay.getTimeInMillis(); //result in millis 

long days = diff/(24 * 60 * 60 * 1000); 

Чтобы Разбираем дату из строки, вы можете использовать

String strThatDay = "1985/08/25"; 
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); 
Date d = null; 
try { 
d = formatter.parse(strThatDay);//catch exception 
} catch (ParseException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 


Calendar thatDay = Calendar.getInstance(); 
thatDay.setTime(d); //rest is the same.... 
0

Используйте JodaTime библиотеку, чтобы найти разницу между датами. Для получения дополнительной информации следуйте инструкциям: Use Joda Time.

Смежные вопросы