0

我有一个应用程序,它使用当前日期和用户使用日期选择器选择的日期,如下所示:

  • 如果用户选择的日期大于当前日期+280 天,则会执行一些代码。

  • 如果用户选择的日期小于当前日期,则会执行一些代码。

我用这段代码这样做..

    Calendar start2 = Calendar.getInstance();

       int birthYear = birthDayDatePicker.getYear();
            int birthMonth = birthDayDatePicker.getMonth();
            int birthDay = birthDayDatePicker.getDayOfMonth();

            start2.set(birthYear, birthMonth, birthDay);

           Calendar cal2 = Calendar.getInstance();
           cal2.setTime(birthDate);
           cal2.add(Calendar.DAY_OF_MONTH,daysToAdd);
 birthDayChosenCalender.set(birthYear,birthMonth,birthDay);
         MaxBirthDayCalender.set(currentYear, currentMonth, currentDay);

          long diff = birthDayChosenCalender.getTimeInMillis() - MaxBirthDayCalender.getTimeInMillis(); //result in millis
          long daysBetween = diff / (24 * 60 * 60 * 1000);
          System.out.println("Days between ,,,,,,,,,,,,,,,,,,"+daysBetween);

          if(MaxBirthDayCalender.before(birthDayChosenCalender) && daysBetween <= 280){

do sth }

有没有其他干净的方法来做到这一点!因为这种方式效果不好!

4

1 回答 1

2

另一种干净的方法是使用 Joda Time 库。

除此之外,一切都可以使用 millis 和单个日历实例来完成:

Calendar pickedDate = new GregorianCalendar(
        picker.getYear(), 
        picker.getMonth(), 
        picker.getDayOfMonth());
long pickedTime = pickedDate.getTimeInMillis();
long now = new Date().getTime();

if (pickedTime - now <= (280 * 24 * 60 * 60 * 1000)) { // 280 days in milliseconds
  // ...
}

应满足以下要求:

我有一个应用程序,它使用当前日期和用户使用日期选择器选择的日期,如下所示:

  • 如果用户选择的日期大于当前日期+280 天,则会执行一些代码。
  • 如果用户选择的日期小于当前日期,则会执行一些代码。
于 2012-11-26T08:37:15.383 回答