Главная страница
    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.46 MB
Время: 0.006 c
14-9977
Val
2002-06-03 13:37
2002.07.04
список в C/C++


6-9942
Donal_Graeme
2002-04-24 11:05
2002.07.04
отправка данных HTTP-прокси


6-9947
tikga
2002-04-22 01:02
2002.07.04
Не знаю что и думать...


3-9742
BJValentine
2002-06-12 12:31
2002.07.04
MS Sql


3-9764
onix
2002-06-13 11:13
2002.07.04
Translate error.Value out of bounds. What is this?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский