• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/util/calendar.php
  • Класс: BitrixTasksUtilCalendar
  • Вызов: Calendar::calculateDuration
public function calculateDuration(DateTime $startDate, DateTime $endDate)
{
	$duration = 0;
	if ($startDate->getTimestamp() < $endDate->getTimestamp())
	{
		$cb = function (DateTime $start, DateTime $end) use(&$duration)
		{
			$duration += ($end->getTimestamp() - $start->getTimestamp());
		};

		$this->processEachDay($startDate, $endDate, true, $cb);
	}
	else
	{
		$cb = function (DateTime $start, DateTime $end) use(&$duration)
		{
			$duration -= ($end->getTimestamp() - $start->getTimestamp());
		};

		$this->processEachDay($endDate, $startDate, true, $cb);
	}

	return $duration;
}