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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.005 c
2-1300534060
Labor
2011-03-19 14:27
2011.06.26
Tsplitter и Timage


15-1299856019
anton773
2011-03-11 18:06
2011.06.26
как сравнить время


2-1300265235
>|<
2011-03-16 11:47
2011.06.26
Как организовать именованные массивы в Delphi?


2-1299153217
Soulofangel
2011-03-03 14:53
2011.06.26
реализовать работу устройства "Автоматический выключатель"


2-1300363050
petrovich
2011-03-17 14:57
2011.06.26
вести логи действий





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