2

我有一个预订表格,要求用户在日期旁边输入他们的详细信息。用户不能提交 24 小时内的日期。必须在 24 小时后进行预订。

我该如何实施?我已经获得了当前的日期和时间。

因此,如果当前日期和时间为 19062012 1324,则在 20062012 1324 之前无法进行预订

我试图做的是:

long mdates = (long) (Long.parseLong(date.getText().toString()));
    long mprefered= (long) (Long.parseLong(date2.getText().toString()));
        long sub = mprefered - mdates;

    if (preferedDateEditText.getText().toString() != null
            && !preferedDateEditText.getText().toString()
                    .equalsIgnoreCase("") && sub>100000000) {
        emailBody += "Prefered date & Time:"
                + preferedDateEditText.getText().toString().trim()
                + "\n sub="+sub;
    } else {
        errorMessage += "A booking cannot be made within 24 hours.";
    }

这有效但是如果首选日期是 01072012 1324 那么它不会接受提前 24 小时任何帮助将不胜感激

4

4 回答 4

2

日期 date1 = 新日期(毫秒);

日期 date2 = 新日期(毫秒);

        if(date1.compareTo(date2)>0)
        {

        }
        else if(date1.compareTo(date2)<0)
        {

        }
        else 
        {
            //both are equal
        }
于 2012-06-19T12:46:22.507 回答
1

使用 SimpleDateFormat 将日期字符串解析为 Date 对象。然后您可以使用这些对象进行比较。

于 2012-06-19T12:38:54.250 回答
1
Date date = new Date(long);
if (date.before(other_date)) {
...
于 2012-06-19T12:34:43.680 回答
0

您可以使用 Date 和 DateFormat 将日期字符串解析为 Date 对象,然后使用 Date.before(Date) 和 Date.after(Date) 函数进行比较。

public checkTimePassed(String datestring){
        DateFormat dfm = new SimpleDateFormat("ddMMyyyy hm");
        Date preferred_date = dfm.parse(datestring);
        Date now = new Date();
        double minimum_time = preferred_date.getTime() + (24 * 60 * 60);
        return now.getTime() > minimum_time;
    }
于 2012-06-19T13:12:48.520 回答