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-часовой формат) и число, на которое нужно сдвинуть часы.

 

Добавить комментарий