Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];

Вниз

Вот ведь задачка...   Найти похожие ветки 

 
tovSuhov   (2002-06-24 10:12) [0]

Мастера, подмогните...Что-то клинануло меня...
Необходимо определить, входит ли указанное время во времянной интервал. Когда задаваемый интервал вида 10:00 - 18:00 (т.е. его начало меньше его конца) все просто:
if ((my_time >= time_begin) and (my_time <= time_end))
then (...)

Но когда интервал такого вида : 22:00 - 6:00
Вот тут начинаются проблемы...
Может кто подскажет алгоритм?


 
MBo   (2002-06-24 10:19) [1]

учти дату и все будет хорошо
(или прибавляй 1 при переходе суток)


 
Kaban   (2002-06-24 10:21) [2]

Что нибудь типа:
if time_begin + my_time >= time_end then


 
Канадин Владимир   (2002-06-24 11:13) [3]

TDateTime в себе содержит день (целая часть) и время (дробная)


 
kull   (2002-06-24 11:13) [4]

Я думаю так:


function InInterval(const my_time,time_begin,time_end: тип): Boolean;
begin
Result := (my_time >= time_begin) and
(my_time <= time_end)
or
(time_begin>time_end) and
(InInterval(my_time,time_begin,24:00) or
InInterval(my_time,0:00,time_end));
end;


Зависит от того, конечно какого типа my_time.


 
tovSuhov   (2002-06-24 11:17) [5]

Нет...Дело в том, что важно именно время, а не дни...
(Пишу тарификацию)
И поэтому нужно выяснить, что, к примеру, 2:00 входит в отрезок
23:00 - 6:00


 
Kaban   (2002-06-24 11:25) [6]

Логика следующая:
if time_begin < time_end then
begin
if my_time between [time_begin, time_end] then
begin
end;
end
else
if not (my_time between [time_end, time_begin]) then
begin
end;





 
MBo   (2002-06-24 11:27) [7]

сделай два интервала 22-24 и 00-06


 
kull   (2002-06-24 11:27) [8]


> kull © (24.06.02 11:13)

Так вот тебе и без дней...


 
tovSuhov   (2002-06-24 11:28) [9]

Точно!!!
Все гениальное просто! Спасибо!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
14-10002
Ricoshet
2002-06-04 11:30
2002.07.04
Поднимаю еще раз этот вопрос!


7-10041
Victor
2002-04-08 16:36
2002.07.04
Не работает под NT (Windows 2000 server)


8-9933
KaMar
2002-01-25 13:28
2002.07.04
Запись avi файла


14-9988
Kr_Alex
2002-06-03 22:44
2002.07.04
Internet


1-9863
greenrul
2002-06-21 14:33
2002.07.04
StringGrid - как сделать верхние хреновины нажимаемыми.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский