11

プログラムで 1 週間の日曜日の数をカウントする方法を見つけようとしています。

私は次のことを試しました:

if (date.DAY_OF_WEEK == date.SUNDAY) {
    System.out.println("Sunday!");
}

それでもうまくいかないようですか?

私が取得しようとするSystem.out.Println the date.DAY_OF_WEEKと:7

現在のカレンダーの日付が日曜日かどうかを確認する方法を知っている人はいますか?

詳細情報の更新

  1. すべての日付の最初。DAY_OF_WEEK は Calendar オブジェクトです!

  2. Calendar オブジェクトdateを必ず日曜日に設定しました

私が7を取得するシステムアウトプリントはdate.DAY_OF_MONTH、日が日曜日に設定されていても、実行しようとすると返されるものです

アレックスへの2回目の更新

これは多かれ少なかれ私のコードです

Calendar startDate = Calendar.getInstance();

    startDate.set(2012, 12, 02);
    if (startDate.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
        System.out.println("true");
    }else {
        System.out.println("FALSE");
    }
4

3 に答える 3

30
Calendar cal = ...;
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
    System.out.println("Sunday!");
}

Calendar.DAY_OF_WEEK7使用しているインスタンスに関係なく常に等しくなりますCalendar(このリンクを参照Calendar.get())。これは、メソッドで使用して正しい値を取得するために作成された定数です。

Calendar.get(Calendar.DAY_OF_WEEK)実際の曜日を返すのはへの呼び出しです。さらに、コード内でより明確にし、と等しいなどのエラーを回避するために、Calendarクラスのような(および他の日と月) に有用な値を見つけることができます。Calendar.SUNDAYJANUARY0

編集

私が言ったように、このCalendarクラスには便利な定数が含まれています。12それらが開始する月番号はありません0(上記を参照) 。Java Date 処理のDECEMBER月番号もあります。11

Calendar startDate = Calendar.getInstance();
startDate.set(2012, Calendar.DECEMBER, 02);
if (startDate.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
    System.out.println("true");
} else {
    System.out.println("FALSE");
}

trueもちろん印刷します。

于 2012-11-30T14:47:50.367 に答える
3

注: Joda-Timeプロジェクトは現在メンテナンス モードになっています。レガシ コードを使用する必要がない場合は、この回答を参照してください。


日付や時刻を頻繁に扱う必要がある場合は、Joda-Timeを試してみてください。

コードは次のようになります。

LocalDate startDate = new LocalDate(2012, 12, 2);
int day = startDate.dayOfWeek().get();   // gets the day of the week as integer

if (DateTimeConstants.SUNDAY == day) {
    System.out.println("It's a Sunday!");
}

からテキスト文字列を取得することもできますdayOfWeek():

String dayText = startDate.dayOfWeek().getAsText();

文字列「日曜日」を返します。

于 2012-12-06T09:10:40.897 に答える