今週の日を見つける最も簡単な方法はありますか?(この関数は、指定された日が現在の週であるかどうかに関連して、trueまたはfalseを返します)。
10100 次
5 に答える
26
間違いなくCalendarクラスを使用したい:http://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html
これを行う1つの方法は次のとおりです。
public static boolean isDateInCurrentWeek(Date date) {
Calendar currentCalendar = Calendar.getInstance();
int week = currentCalendar.get(Calendar.WEEK_OF_YEAR);
int year = currentCalendar.get(Calendar.YEAR);
Calendar targetCalendar = Calendar.getInstance();
targetCalendar.setTime(date);
int targetWeek = targetCalendar.get(Calendar.WEEK_OF_YEAR);
int targetYear = targetCalendar.get(Calendar.YEAR);
return week == targetWeek && year == targetYear;
}
于 2012-04-25T10:35:03.580 に答える
4
クラスを使用しCalendar
てYEARフィールドとWEEK_OF_YEARフィールドを取得し、両方が同じかどうかを確認します。
文化によって、どの曜日が週の最初の日であるかについて意見が異なるため、結果はロケールによって異なることに注意してください。
于 2012-04-25T10:29:11.103 に答える
2
于 2013-12-12T05:33:20.263 に答える
0
この答えはAndroid用です。選択した日付Calendarオブジェクトを以下のメソッドに入れて、選択した日付が現在の週の日付であるかどうかを確認します。
private boolean isCurrentWeekDateSelect(Calendar yourSelectedDate) {
Date ddd = yourSelectedDate.getTime();
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
Date monday = c.getTime();
Date nextMonday= new Date(monday.getTime()+7*24*60*60*1000);
return ddd.after(monday) && ddd.before(nextMonday);
}
java.util.Calendar
Androidは、日付と時刻に関連するクエリのクラスをすでに提供しています。
于 2018-06-30T05:08:02.843 に答える
0
シンプルなKotlinソリューション:
fun isDateInCurrentWeek(date: DateTime): Boolean {
val cal = Calendar.getInstance()
cal.add(Calendar.DAY_OF_WEEK, 0)
var dt= DateTime(cal.timeInMillis)
return date in dt..dt.plusDays(6)
}
于 2019-09-04T06:07:24.487 に答える