• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/util/calendar.php
  • Класс: BitrixTasksUtilCalendar
  • Вызов: Calendar::calculateStartDate
public function calculateStartDate($endDate, $duration)
{
	$newDate = null;

	$cb = function (DateTime $start, DateTime $end) use(&$newDate, &$duration)
	{
		$interval = $end->getTimestamp() - $start->getTimestamp();
		if ($interval >= $duration)
		{
			$newDate = DateTime::createFromTimestampGmt($end->getTimestamp() - $duration);
			return false;
		}
		else
		{
			$duration -= $interval;
		}
	};

	$this->processEachDay(null, $endDate, false, $cb);

	return $newDate;
}