private static int getIso8601WeekNumber()

in core/src/main/java/org/apache/calcite/avatica/util/DateTimeUtils.java [930:948]


  private static int getIso8601WeekNumber(int julian, int year, int month, int day) {
    long fmofw = firstMondayOfFirstWeek(year);
    if (month == 12 && day > 28) {
      if (31 - day + 4 > 7 - (Math.floorMod(julian, 7) + 1)
          && 31 - day + Math.floorMod(julian, 7) + 1 >= 4) {
        return (int) (julian - fmofw) / 7 + 1;
      } else {
        return 1;
      }
    } else if (month == 1 && day < 5) {
      if (4 - day <= 7 - (Math.floorMod(julian, 7) + 1)
          && day - (Math.floorMod(julian, 7) + 1) >= -3) {
        return 1;
      } else {
        return (int) (julian - firstMondayOfFirstWeek(year - 1)) / 7 + 1;
      }
    }
    return (int) (julian - fmofw) / 7 + 1;
  }