Я пытаюсь получить правильную разницу во времени между текущим и вторым выбранным днем из календаря. В этом случае я использую LocalDate
и 3 метода getDays()
getMonths()
getYears()
, чтобы получить день и месяц, а также год:
public int dateDiff(int year,int month,int day) {
final int Day = c.get(Calendar.DAY_OF_MONTH);
final int Month = c.get(Calendar.MONTH);
final int Year = c.get(Calendar.YEAR);
LocalDate localDate1 = LocalDate.of(year,month,day);
LocalDate localDate2 = LocalDate.of(Year,Month,Day);
Period period = Period.between(localDate2,localDate1);
int dayDiff = period.getDays();
return dayDiff;
}
public void onSelectedDayChange(@NonNull CalendarView view, final int year, final int month, final int dayOfMonth) {
textView.setText(""+dateDiff(year, month, day));
}
Но каждый раз, когда я тестирую код, который я получил в textView «0», я пытаюсь увидеть значение переменной «период», и я получаю (P2M8D «этот результат получен в моем примере»), это означает, что период переменной подсчитывает разницу между днями и проблема в методах. Как я могу решить эту проблему?
Calendar
, так как он устарел. У вас уже есть доступ к Java 8 Date and Time API (в пакетеjava.time
), поэтому вам следует использовать их. - person MC Emperor   schedule 25.04.2020Calendar
, потому что мне нужен календарь в моем проекте. Пользователь нажимает на нужную дату и пишет событие - person Mohamed Amine Sekmani   schedule 25.04.2020LocalDate.now()
и попробовать. - person Aviral Verma   schedule 26.04.2020period.getDays()
, вероятно, не то, что вам нужно, используйтеChronoUnit.DAYS.between
см. stackoverflow.com/questions/30833582/. Вы все равно не должны получить0
. В коде есть еще одна проблема, которую вы нам не показали. - person Oleg   schedule 26.04.2020