• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/tzgen.php
  • Класс: TZConvTransition
  • Вызов: TZConvTransition::computeTransitionDate
public function computeTransitionDate($year)
{
	$minute = str_pad($this->minute, 2, STR_PAD_LEFT);
	$second = str_pad($this->second, 2, STR_PAD_LEFT);

	$transition = DateTime::createFromFormat('Y-m-d G:i:s',
		"{$year}-{$this->month}-1 {$this->hour}:{$minute}:{$second}",
		new DateTimeZone('UTC')
	);

	if ($transition == FALSE)
	{
		throw new Exception('invalid transition rule');
	}

	$sign = $this->numwk < 0 ? '-' : '+';

	if ($sign == '-')
	{
		$transition->modify("+1 month -1 day");
	}

	while($transition->format('w') != $this->wkday)
	{
		$transition->modify($sign . '1 day');
	}
	$transition->modify($sign . (abs($this->numwk) -1) . ' weeks');

	return $transition;
}