[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сравнение промежутков(!) времени
KingBabar
Проблема следующая:
Есть промежуток(!) времени а и есть промежуток времени б. Нужно узнать в какое время они пересекаются (а лучше в какой промежуток времени). Как это сделать - ума ни приложу.



Спустя 8 часов, 43 минуты, 52 секунды (3.01.2010 - 21:26) ApuktaChehov написал(а):
Я вот что придумал.

Узнаешь время конца первого и начала второго промежутка в секундах по UNIX таймстамп.
А потом сравниваешь: если время конца первого промежутка больше времени начала второго, то они пересекаются. И если они пересекаются, то можно вычислить так: время конца первого промежутка минус время начала второго - будет тот самый пересекающийся промежуток.

Спустя 1 час, 30 минут, 58 секунд (3.01.2010 - 22:57) andyp написал(а):
Цитата (ApuktaChehov @ 3.01.2010 - 18:26)
Я вот что придумал.

Узнаешь время конца первого и начала второго промежутка в секундах по UNIX таймстамп.
А потом сравниваешь: если время конца первого промежутка больше времени начала второго, то они пересекаются. И если они пересекаются, то можно вычислить так: время конца первого промежутка минус время начала второго - будет тот самый пересекающийся промежуток.

если время конца первого промежутка 1 больше времени начала второго 2, то они могут и не пересекаться, поскольку промежуток 2 может закончиться раньше, чем начался промежуток 1. wink.gif
То есть, тогда дополнительно нужно знать, что промежуток 2 закончился позже, чем начался первый. smile.gif




Спустя 2 часа, 16 минут, 13 секунд (4.01.2010 - 01:13) ApuktaChehov написал(а):
Ну, я не стал глубоко задумываться.
Просто подкинул идейку автору темы.

Спустя 2 дня, 10 часов, 53 минуты, 33 секунды (6.01.2010 - 12:07) KingBabar написал(а):
Цитата
если время конца первого промежутка 1 больше времени начала второго 2, то они могут и не пересекаться, поскольку промежуток 2 может закончиться раньше, чем начался промежуток 1. wink.gif
То есть, тогда дополнительно нужно знать, что промежуток 2 закончился позже, чем начался первый. smile.gif


ну это уже легко, достаточно добавить условие if ($начало_1го_промежутка<$начала второго промежутка). И тогда предложенная выше схема работает)
Всем спасибо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.