Python で年の週、を取得するのは、datetime の isocalendar
3 要素のタプル (ISO 年、ISO 週番号、ISO 曜日) が返ってきます。
import datetime
today = datetime.datetime.today() weekNumber = today.isocalendar()[1] print(weekNumber)
しかし、月曜始まりでカウントしたもの。
JavaScript で同じ値を出すなら、moment.js を使用して
moment().isoWeek();
Java の場合、LocalDate でなく、java.util.Calendar で、月曜始まりでカウントする週を求める。
Calendar cal = Calendar.getInstance(); /* 週の開始を月曜にセット */ cal.setFirstDayOfWeek(Calendar.MONDAY); int week = cal.get(Calendar.WEEK_OF_YEAR);
Calendar で 対象の週に属する日の setFirstDayOfWeek でセットして
get(Calendar.WEEK_OF_YEAR) で求めるという不便がある。
Calendar の set( int yeat, int month, int day) を使うにしても
月は、0始まりで使いにくいので注意が必要
LocalDate dt;
とあるなら、、
Calendar cal = Calendar.getInstance(); cal.set(dt.getYear(), dt.getMonthValue()-1, dt.getDayOfMonth()); cal.setFirstDayOfWeek(Calendar.MONDAY); int week = cal.get(Calendar.WEEK_OF_YEAR);
と手数が必要
ついでのメモ。。。
jQuery ui の datepicker を 月曜始まりにするなら、、
firstDay を 1(月曜日)に指定するオプションを追加、、
例)
$("#datepicker").datepicker({ prevText:"前月", nextText:"翌月", changeMonth: true, changeYear: true, yearRange: '-5:+4', firstDay: 1, });