2012-11-26 52 views
0

我有使用当前日期的应用程序和使用日期选取如下选择由用户的日期:的Android日期选择器计算,前后指定日之后

  • 如果日期,用户选择的是当前日期+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 } 

是否有任何其他清洁的方式来做到这一点!因为这种方式工作不好!

回答

2

另一个干净的方法是使用乔达时间库。

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天,则s ome代码将被执行。
  • 如果用户选择的日期小于当前日期,则会执行一些代码。
+0

PickedDate具有日期选择器的日期,现在是当前日期?这个如果做什么?你能解释一下吗? –

相关问题