【问题标题】:comparing date and time in date picker比较日期选择器中的日期和时间
【发布时间】:2015-08-31 07:40:10
【问题描述】:

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

  • 日期不得早于今天(系统日期)
  • 日期不得超过 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);
                }



            }
        };

非常感谢

【问题讨论】:

标签: android date datepicker datepickerdialog


【解决方案1】:

根据需要使用即可。

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();

【讨论】:

  • 非常感谢。拿走了我需要的东西,为我工作。很有帮助
猜你喜欢
  • 1970-01-01
  • 2012-02-07
  • 2015-07-20
  • 2021-01-23
  • 2012-04-20
  • 2012-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多