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
Date date = new Date(long);
if (date.before(other_date)) {
...
于 2012-06-19T12:34:43.680 に答える
1

SimpleDateFormat を使用して、日付文字列を解析して Date オブジェクトに変換します。次に、これらのオブジェクトを比較に使用できます。

于 2012-06-19T12:38:54.250 に答える
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 に答える