比较日期选择器中的日期和时间

时间:2015-08-31 07:40:10

标签: android date datepicker datepickerdialog

我有一个日期选择器对话框,用户可以使用该对话框选择日期。条件是:

  • 日期不得大于今天(系统日期)
  • 日期不得超过3个月

我已经做了第一点,但我不确定如何比较两个日期以检查它是否超过3个月。

代码中的

:checkInYear,checkInMonth和checkInDay是用户选择的,年,月,日是系统日期。

您能否建议如何比较两个日期以检查它是否超过3个月。

非常感谢您的帮助。

@Override
            public void onDateChanged(DatePicker view, int selectedYear,
                    int selectedMonthOfYear, int selectedDayOfMonth) {
                setCurrentDateOnView();
                int checkInYear = selectedYear;
                int checkInMonth = selectedMonthOfYear;
                int checkInDay = selectedDayOfMonth;                   
                if (checkInYear > year || checkInYear < year) {
                    view.updateDate(year, month, day);

                }

                if (checkInMonth > month && checkInYear == year) {
                    view.updateDate(year, month, day);
                }

                if (checkInDay > day && checkInYear == year
                        && checkInMonth == month) {
                    view.updateDate(year, month, day);
                }



            }
        };

非常感谢

1 个答案:

答案 0 :(得分:3)

根据您的需要使用。

String sDate = "05-10-2012"; // suppose you create this type of date as string then

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");

Date date = sdf.parse(sDate);

Calendar c = Calendar.getInstance();

c.getTime().compareTo(date);

取决于你的字符串或你如何获得?您可以从datepicker单独获取所有内容,然后直接在日历实例中设置

Calendar my = Calendar.getInstance();
my.set(year, month, day);

现在比较

my.compareTo(Calendar.getInstance());

并且在不到3个月的时间里,您可以使用类似的东西。

Date referenceDate = new Date();
Calendar c = Calendar.getInstance(); 
c.setTime(referenceDate); 
c.add(Calendar.MONTH, -3);
return c.getTime();