- /**
- * 指定された日付(calcDate)が、指定された日付(from)から第何週目であるかを計算して返します。
- * 起点となる日付(第1引数)よりも、過去日付(第2引数)が指定された場合は、0を返します。
- * @param from 通算週の起点となる日付
- * @param calcDate 何週目かを求めたい日付
- * @return 通算週番号
- * 2014/01/01を起点とした場合、
- * 2014/01/01は第1週
- * 2014/01/02は第1週
- * 2014/01/08は第2週
- */
- public static int getTotalWeekNumber(Date from, Date calcDate) {
- Calendar calFrom = Calendar.getInstance();
- calFrom.setTime(from);
-
- Calendar calTo = Calendar.getInstance();
- calTo.setTime(calcDate);
-
- // 2つの日付の差を求める(ミリ秒)
- long difference = calTo.getTime().getTime() - calFrom.getTime().getTime();
-
- // 起点となる日付よりも過去が指定されている場合は0として終了
- if (difference < 0) {
- return 0;
- }
-
- // ミリ秒単位を日単位に変換
- int diffDay = (int) (difference / 1000 / 60 / 60 / 24);
- // 通算週
- int totalWeekNumber = diffDay / 7;
- // 第1週から開始なので、+1する
- return totalWeekNumber + 1;
- }
|