Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android日期选择器计算,在特定日期之前和之后_Java_Android_Date_Calendar_Datepicker - Fatal编程技术网

Java Android日期选择器计算,在特定日期之前和之后

Java Android日期选择器计算,在特定日期之前和之后,java,android,date,calendar,datepicker,Java,Android,Date,Calendar,Datepicker,我有一个应用程序,它使用当前日期和用户使用日期选择器选择的日期,如下所示: 如果用户选择的日期大于当前日期+280天, 将执行一些代码 如果用户选择的日期小于当前日期,则某些 代码将被执行 我使用了这个代码来实现 Calendar start2 = Calendar.getInstance(); int birthYear = birthDayDatePicker.getYear(); int birthMonth = birthDayDate

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

  • 如果用户选择的日期大于当前日期+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 }
Calendar start2=Calendar.getInstance();
int birthdayer=birthDayDatePicker.getYear();
int birthdaymonth=birthDayDatePicker.getMonth();
int birthDay=birthDayDatePicker.getDayOfMonth();
start2.set(生日、生日、生日);
Calendar cal2=Calendar.getInstance();
cal2.设定时间(出生日期);
计算2.添加(日历.月的第天,第天添加);
BirthdayChosenCalendar.set(生日、生日、生日);
MaxBirthdayCalendar.set(当前年、当前月、当前日);
long diff=birthdaychosencalendar.getTimeInMillis()-maxbirthdaycalendar.getTimeInMillis()//结果是毫秒
长日间隔=差值/(24*60*60*1000);
System.out.println(“介于,,,,,,,,,,,,,,,,,,+之间的天数”);

如果(MaxBirthdayCalendar.before(BirthdayChosenCalendar)&&days之间另一种干净的方法是使用Joda时间库

除此之外,一切都可以使用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
  // ...
}
Calendar pickedDate=new GregorianCalendar(
picker.getYear(),
picker.getMonth(),
picker.getDayOfMonth());
long pickedTime=pickedDate.getTimeInMillis();
long now=new Date().getTime();

如果(pickedTime-now PickedDate)是日期选择器的日期,现在是当前日期??如果这样做了什么?你能解释一下吗?