Форум: "Прочее";
Текущий архив: 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