「今日」が月曜日と金曜日の間にあるかどうかを確認するメソッドを作成しようとしています。このために私はこの行で取得します'int day = Calendar.DAY_OF_WEEK;'
実際の日。その後、ArrayListに曜日(月曜日、火曜日、Wendsday、木曜日、金曜日)を入力します。実際の日がArrayListにあるかどうかを確認するとき、boolean DAY = true
それ以外の場合boolean DAY = false
。今日と昨日、メソッドを試しましたが、常にブール値をfalseに設定します。
コードが機能するように変更するには何が必要ですか?ここにコードがあります。
コード
int day = Calendar.DAY_OF_WEEK;
ArrayList<Integer> daylist = new ArrayList<Integer>();
daylist.add(Calendar.MONDAY);
daylist.add(Calendar.TUESDAY);
daylist.add(Calendar.WEDNESDAY);
daylist.add(Calendar.THURSDAY);
daylist.add(Calendar.FRIDAY);
if (daylist.contains(day)){
DAY = true;
}else{
DAY = false;
}
うわー、それは熱核弾頭で蚊を殺そうとするようなものです:-)
Java 保証(1.5) (少なくとも 1.8 まで変更なし)SUNDAY
からSATURDAY
の値が連続している(1から7)範囲をチェックするのは簡単なことです。
しかしながら、 DAY_OF_WEEK
はnot曜日ではなく、ゲッターに渡されてretrieve曜日。唯一の時間Calendar.DAY_OF_WEEK
自体は実際の曜日と一致し、土曜日になります。
次のようなコードを使用できます。
Calendar myDate = Calendar.getInstance(); // set this up however you need it.
int dow = myDate.get (Calendar.DAY_OF_WEEK);
boolean isWeekday = ((dow >= Calendar.MONDAY) && (dow <= Calendar.FRIDAY));
これに続いて、isWeekday
からの日が月曜日から金曜日までの場合にのみ、myDate
が真になります。
int day = Calendar.DAY_OF_WEEK;
は代わりに
Calendar cal; // The calendar object
....your other code for getting the date goes here....
int day = cal.get(Calendar.DAY_OF_WEEK);
現在のコードは、定数Calendar.DAY_OF_WEEK
の値を取得するだけです。
これは私があなたのためのトリックを行う必要があります。
int day = cal.get(Calendar.DAY_OF_WEEK);
if (day >= Calendar.MONDAY && day <= Calendar.FRIDAY){
DAY = true;
}else{
DAY = false;
}
最初のCalendar.DAY_OF_WEEKは常に7を与える整数フィールドです。Calendarcal = Calendar.getInstance();のようなカレンダーのインスタンスを作成する必要があります。デフォルトでは、現在のタイムゾーンの現在の日付を提供します。その後、cal.get(Calendar.DAY_OF_WEEK);を呼び出すことができます。日曜日から土曜日までの任意の日を提供します
今、あなたはこのようなものをチェックすることができます
if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY || cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
System.out.println("Weekend");
} else {
System.out.println("Weekday");
}
このロジックを問題に適用できます!!
int day = Calendar.DAY_OF_WEEK;
ロジックはここで壊れています。 DAY_OF_WEEKは、Calendar
インスタンスから取得する必要があるデータのタイプを識別する定数です。
あなたの問題の最も簡単な解決策は(Calendar.FRIDAY> ...> Calendar.MONDAY以降)
Calendar now = Calendar.getInstance();
int day = now.get(Calendar.DAY_OF_WEEK);
if (day >= Calendar.MONDAY && day <= Calendar.FRIDAY)
// do something