4

私は 3 つの別々の整数入力 (年、月、日) を取り、これら 3 つのエントリを取り、それらから日付のオブジェクトを形成しようとしているので、それを使用して他の日付を比較できます。

これは私がこれまでに持っているもので、ここからどこへ行くべきか途方に暮れています:

public void compareDates() {

    String dayString = txtOrderDateDay.getText();
    String monthString = txtOrderDateMonth.getText();
    String yearString = txtOrderDateYear.getText();

    int day = Integer.parseInt(dayString);
    int month = Integer.parseInt(monthString);
    int year = Integer.parseInt(yearString);
}

あなたが提供しなければならない助けに感謝します。

4

3 に答える 3

4

これを試してください。月はゼロから始まるので、月を正しく指定するには1を引く必要があります。

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DATE, day);
Date date = calendar.getTime();

またはこれ:

Calendar calendar = Calendar.getInstance();
calendar.set(year, month-1, day);
Date date = calendar.getTime();

またはこれ:

Date date = new GregorianCalendar(year, month-1, day).getTime();

最初の方法では、日付に他のフィールドを設定できるため、より詳細に制御できます。たとえば、次のようになりますDAY_OF_WEEK, DAY_OF_WEEK_IN_MONTH, DAY_OF_YEAR, WEEK_OF_MONTH, WEEK_OF_YEAR, MILLISECOND, MINUTE, HOUR, HOUR_OF_DAY

最後に、コメントに示されているように日付を正しくフォーマットするには、次のようにします。

DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
String strDate = df.format(date);
于 2012-06-01T03:25:20.110 に答える
3

グレゴリオ暦を使用する

new GregorianCalendar(int year, int month, int dayOfMonth)
于 2012-06-01T03:22:22.023 に答える
2

このようなタスクであなたの人生を容易にするために、このライブラリを参照してください - http://joda-time.sourceforge.net/

次に、次のようなコードを記述します。

LocalDate ld = new LocalDate(int year, int monthOfYear, int dayOfMonth) ;

このクラスは、分数の追加などの比較と操作のための便利なメソッドを多数提供します...ここでそのドキュメントを見てください

joda-time についてもう少し:

Joda-Time は、Java の日付と時刻のクラスの高品質な代替品を提供します。この設計では、シンプルな API を提供しながら、複数のカレンダー システムを使用できます。「デフォルト」のカレンダーは、XML で使用される ISO8601 標準です。グレゴリオ暦、ユリウス暦、仏教、コプト、エチオピア、イスラムのシステムも含まれており、さらなる追加を歓迎します。サポート クラスには、タイム ゾーン、期間、形式、および解析が含まれます。

于 2012-06-01T03:35:00.587 に答える