Esempio n. 1
0
 /**
  * Obtains an instance of {@code WeekFields} from the first day-of-week and minimal days.
  * <p>
  * The first day-of-week defines the ISO {@code DayOfWeek} that is day 1 of the week.
  * The minimal number of days in the first week defines how many days must be present
  * in a month or year, starting from the first day-of-week, before the week is counted
  * as the first week. A value of 1 will count the first day of the month or year as part
  * of the first week, whereas a value of 7 will require the whole seven days to be in
  * the new month or year.
  * <p>
  * WeekFields instances are singletons; for each unique combination
  * of {@code firstDayOfWeek} and {@code minimalDaysInFirstWeek} the
  * the same instance will be returned.
  *
  * @param DayOfWeek $firstDayOfWeek the first day of the week, not null
  * @param int $minimalDaysInFirstWeek the minimal number of days in the first week, from 1 to 7
  * @return WeekFields the week-definition, not null
  * @throws IllegalArgumentException if the minimal days value is less than one
  *      or greater than 7
  */
 public static function of(DayOfWeek $firstDayOfWeek, $minimalDaysInFirstWeek)
 {
     $key = $firstDayOfWeek->__toString() . $minimalDaysInFirstWeek;
     $rules = @self::$CACHE[$key];
     if ($rules === null) {
         $rules = new WeekFields($firstDayOfWeek, $minimalDaysInFirstWeek);
         self::$CACHE[$key] = $rules;
         $rules = self::$CACHE[$key];
     }
     return $rules;
 }