Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2009, 20:24   #1
POX
Новичок
Джуниор
 
Регистрация: 29.06.2009
Сообщений: 5
По умолчанию Сравнение времени


Блин проблема заключается в следующем,- дельфи почему то не правильно сравнивает время...
т.е. сначала происходит считываниe параметров времени(которые надо, т.е. время начала и время конца( считывает он все по отдельности, а затем энкод))
пробывал выводить через showmessage, параметры считывает верно, т.е. время начальное и конечно он показывает правильно, но условие now>Tначала and Now<Tконца, в упор выполнять не хочет...
В чем может быть проблема?? делфи не умеет сравнивать время???
POX вне форума Ответить с цитированием
Старый 29.06.2009, 20:40   #2
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм.... а в чём дело? приведи к строкам TimeToStr(now) и уже потом строки и сравнивай любым способом....
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 29.06.2009, 20:53   #3
POX
Новичок
Джуниор
 
Регистрация: 29.06.2009
Сообщений: 5
По умолчанию

проблема в том, что строки можно сравнивать только на = и <>, а надо что бы сравнение шло в интервале, т.е. есть таймер, который должен срабатывать через определенный интервал в определенно диапазоне времени...допустим надо чтобы сообщение выпригавало с 17.00 до 18.30 а если компьютер включат, допустим в 17.10, то программа уже работать не будет.... по этому надо сравнивать именно время,( разбиение на часы, минуты тоже нельзя, т.к. если надо чтобы программа работала с 17.55 до 18.25, то получится условие что часы1>=17 и минуты>55 и минуты2<30 что противоречит минутам >55...) в опщем извините за мой корявый, но думаю идею поняли
POX вне форума Ответить с цитированием
Старый 29.06.2009, 20:57   #4
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм... приведи к строке, оставь только цифры в строке, в том порядке в котором идут, приведи к Integer и сравнивай... если нужен код - напишу, просто самому это не так уж и сложно будет реализовать....
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 29.06.2009, 21:02   #5
POX
Новичок
Джуниор
 
Регистрация: 29.06.2009
Сообщений: 5
По умолчанию

я так понимаю будет что-то типа
readln(start);
readln(stop);

strtoint(start);
strtoint(stop);



а теперь вопрос как время(now) привести к интеджеру??
если учесть что формат времени hh:mm:ss:ms


PS Now В формате TDtetime И сравгниваться с интеджером конечно же не хочет

Последний раз редактировалось POX; 29.06.2009 в 21:05.
POX вне форума Ответить с цитированием
Старый 29.06.2009, 21:15   #6
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм.... как привести....
Код:
function time_to_integer(const MyTime: TDateTime):integer;
var StrTime1,StrTime2: string;
     i: integer;
begin
  StrTime1:=TimeToStr(Now);
  StrTime2:='';
  for i:=1 to length(StrTime1) do
    if not (StrTime1[i] = ':') then StrTime2:=StrTime2+StrTime1[i];
  Result:=StrToInt(StrTime2);
end;
на выходе функции - числовое представление... то есть 18:25:32:142 будет выглядеть как 182532142... и вот их и сравнивайте... ну а уж откуда вы берёте start и stop - решайте сами=)
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 29.06.2009, 21:19   #7
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

пытаемся осмыслить корявый и не красивый, но работающий код:

Код:
if (FloatToStr(Time)>FloatToStr(StrToTime('17:00:00')))or
   (FloatToStr(Time)<FloatToStr(StrToTime('18:30:00')))
 then ShowMessage('Текущее время '+TimeToStr(Time));
ты по окуратнее.. ато и папой станешь если так расслабяться после экзаменов будешь.. а там думать уже прийдётся постоянно
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"

Последний раз редактировалось Ntlegend; 29.06.2009 в 21:49.
Ntlegend вне форума Ответить с цитированием
Старый 29.06.2009, 21:45   #8
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм.... Ntlegend, не додумался всё-таки вредно после экзаменов думать - ни к чему хорошему не приводит
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 30.06.2009, 10:55   #9
POX
Новичок
Джуниор
 
Регистрация: 29.06.2009
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Ntlegend Посмотреть сообщение
пытаемся осмыслить корявый и не красивый, но работающий код:

Код:
if (FloatToStr(Time)>FloatToStr(StrToTime('17:00:00')))or
   (FloatToStr(Time)<FloatToStr(StrToTime('18:30:00')))
 then ShowMessage('Текущее время '+TimeToStr(Time));
ты по окуратнее.. ато и папой станешь если так расслабяться после экзаменов будешь.. а там думать уже прийдётся постоянно
Идеальное решение)) спасибо большое
POX вне форума Ответить с цитированием
Старый 30.06.2009, 19:02   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Delphi7 Dateutils CompareDateTime

F1 datetime routines CompareDateTime
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 30.06.2009 в 19:04.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. Сравнение строк maxlav Помощь студентам 8 25.06.2009 04:33
[HELP] C; сравнение не происходит AlexandrSN Общие вопросы C/C++ 2 11.06.2009 03:13
Сравнение даты и времени Altera Общие вопросы Delphi 2 03.10.2008 09:52
Сравнение данных White БД в Delphi 1 09.09.2008 22:32
Сравнение макросов valerij Microsoft Office Excel 24 09.06.2008 00:57