PHP: Правильный сдвиг часов
Несколько дней назад понадобилось написать скрипт, который учитывал бы время с каким-либо интервалом. Время определить удалось, но возникла проблема как задать точность. Например время определилось как 0 часов. Тогда при точности +- 2 будет интервал от -2 до 2 часов. Но что такое минус 2 часа? Такого не бывает! Для исправления этой ситуации потребовалось написать функцию, которая бы правильно считала время.
[code lang=»c»]
function TimeChange($hour, $shift)
{
    if ($shift + $hour > 24)
    {
    	return abs($hour + $shift) — 24;
    }
    else if ($shift + $hour < 0)
    {
    	return 24 — abs($hour + $shift);
    }
    else
    {
    	if ($shift + $hour == 24)
    		return 0;
    	return $shift + $hour;
    }
}[/code]
Функция принимает текущий час (24-часовой формат) и число, на которое нужно сдвинуть часы.