Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.06.26;
Скачать: CL | DM;

Вниз

как сравнить время   Найти похожие ветки 

 
anton773   (2011-03-11 18:06) [0]

Здравствуйте! procedure TForm1.Button1Click(Sender: TObject);
begin

if time < 01.00 then ShowMessage("Рано!") ;
if time > 01.00 then ShowMessage("Поздно!") ;
end;
почему не правильно работает данный код. Не зависимо от того, который сейчас час, кричит что рано. И как правильно сравнить время. Спасибо, всем кто откликнется


 
KilkennyCat ©   (2011-03-11 18:13) [1]

что такое time и 01.00


 
anton773   (2011-03-11 18:22) [2]


> что такое time и 01.00

time это текущее системное время 01.00 это то время, с которым сравнивается текущее


 
Германн ©   (2011-03-11 18:29) [3]


> 01.00 это то время

Это не время.


 
clickmaker ©   (2011-03-11 18:34) [4]

> Не зависимо от того, который сейчас час, кричит что рано

потому что time - дробная часть числа типа double, которое представляет дату-время. А дробная часть всегда < 1


 
>|<   (2011-03-11 18:35) [5]


procedure TForm1.Button1Click(Sender: TObject);

var
 Present: TDateTime;
  Hour, Min, Sec, MSec: Word;
begin
 Present:= Now;

  DecodeTime(Present, Hour, Min, Sec, MSec);
 if Hour < 1 then ShowMessage("Рано!") ;
 if Hour > 1 then ShowMessage("Поздно!") ;

end;


 
han_malign   (2011-03-11 18:36) [6]

TDateTime(01.00) == 1 день == 24 часа == 1440 минут == 86400 секунд


 
Inovet ©   (2011-03-11 18:40) [7]

> [2] anton773   (11.03.11 18:22)
> 01.00 это то время, с которым сравнивается текущее

На 01:00 компилятор посмеялся, а 01.00 промолчал?
01.00 = 1.0 и это константа с плавающей точкой а не 01 час 00 минут.
time это не тот ли, где количество секунд прошедших с 1 января 1970?


 
anton773   (2011-03-11 18:44) [8]


> >|<

Огромное спасибо, работает!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


 
Inovet ©   (2011-03-11 18:49) [9]

> [8] anton773   (11.03.11 18:44)
> работает!

А почему понятно?


 
>|<   (2011-03-11 19:03) [10]


> Огромное спасибо, работает!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> !!!!!!!!

перенаправляю твою благодарность встроенной справке в Delphi 7
Если не знаешь как ею пользоваться, нажимай F1 и вводи слово DecodeTime
Там в описании ф-ции смотри Example.
Удачи!


 
clickmaker ©   (2011-03-11 19:05) [11]

if (T < 1/24) then ShowMessage("Рано!");
if (T > 1/24) then ShowMessage("Поздно!");


 
Anatoly Podgoretsky ©   (2011-03-11 19:57) [12]

> anton773  (11.03.2011 18:06:00)  [0]

Time всегда меньше 1


 
Inovet ©   (2011-03-11 20:24) [13]

Ещё один вопрос остался: а если = 1 час, то "В самый раз"?


 
anton773   (2011-03-11 20:29) [14]


> Time всегда меньше 1

зачем тогда оно нужно??? и как обычно используется? (В смысле если это не текущее время)


 
Германн ©   (2011-03-11 20:37) [15]


> Time всегда меньше 1

Поэтому времени всегда мало :(


 
Anatoly Podgoretsky ©   (2011-03-11 21:21) [16]

> anton773  (11.03.2011 20:29:14)  [14]

Оно всегда нужно меньше единицы и другим оно быть не может.


 
>|<   (2011-03-12 11:20) [17]

Провести ликбез что-ли...
Дата и время хранятся в виде числа с плавающей точкой

Встроенная ф-ция Now возвращает тип TDatetime, суть которого число с плавающей точкой
например
345678.334456
где целая часть - это дата, а дробная - это время
то есть дата будет = 345678
а время =0.334456
чтобы перевести в понятный формат используют две ф-ции
DecodeDate
DecodeTime
которые преобразуют одно число с плавающей точкой в несколько целых чисел, каждое из которых представляет собой день, месяц, год, секунду, минуту, час


 
Anatoly Podgoretsky ©   (2011-03-12 12:51) [18]

> >|<  (12.03.2011 11:20:17)  [17]

Вообще то лучше ...ToStr


 
boriskb ©   (2011-03-12 13:50) [19]


> >|<   (12.03.11 11:20) [17]


C точки зрения автора поста ты несомненно молодец.
Но почему меня такие ответы всегда нервируют?

Наверное потому, что приучают "задавальщика вопросов"  по любому поводу лезть в инет, вместо изучения вопроса.

Вот какая реальная польза для anton773  от такого ответа?

Никакой!!
Один вред.


 
>|<   (2011-03-12 14:54) [20]


> Но почему меня такие ответы всегда нервируют?

если нервируют, тогда не читай.

а мне не жалко поделиться накопленными знаниями.
сам когда-то таким был и знаю, как тяжело было доходить до всего своим умом.

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


 
>|<   (2011-03-12 15:01) [21]

забыл добавить 345678.334456 - это по юлианскому календарю
1 юлианское столетие равно в точности 36525 дней


 
>|<   (2011-03-12 15:05) [22]


> приучают "задавальщика вопросов"  по любому поводу лезть
> в инет, вместо изучения вопроса.
>

пусть лезет.
а как же без инета учиться? учебники дорогие, да и устаревают быстро...



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

Текущий архив: 2011.06.26;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.009 c
15-1299291123
Gydvin
2011-03-05 05:12
2011.06.26
Посоветуйте форум C++


2-1300304764
istok
2011-03-16 22:46
2011.06.26
AV в ntdll.dll...?


15-1300095354
Dennis I. Komarov
2011-03-14 12:35
2011.06.26
Глюк AReader-а


4-1219157045
ganj
2008-08-19 18:44
2011.06.26
Переключение раскладки клавиатуры в консоли


15-1299965393
Юрий
2011-03-13 00:29
2011.06.26
С днем рождения ! 13 марта 2011 воскресенье