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

Вниз

Подскажите как правильно считать время: есть 3 лабела   Найти похожие ветки 

 
mmmh   (2003-03-07 23:40) [0]

В один загоняю время now в другой время когда вставать
а в третий загоняю разницу: label2-label1 ( все ето конечно конвертирую во время) и в итоге иногда странный результат
допустим сейчас 22:00:00 вставать в 2:00:00 в результате вместо 4 часов остатка я получаю 20:00:00 . как сделать правильно с текущим раскладом лабелов


 
Anatoly Podgoretsky   (2003-03-07 23:58) [1]

Ошибка в 17 строке


 
mmmh   (2003-03-08 23:34) [2]

Не понял?


 
Anatoly Podgoretsky   (2003-03-08 23:37) [3]

Код давай


 
Palladin   (2003-03-09 01:10) [4]


> mmmh (07.03.03 23:40)

у тебя с логикой проблема чтоли?
скажи мне сколько будет 22-2? правильно будет 20...
работай не только с часами но и днями...


 
mmmh   (2003-03-09 23:42) [5]

Если бы знал как это, то не спрашивал бы.код : t1 := strtotime(StringGrid1.Cells[2,i]);
t2 := t1 - strtotime(times);
StringGrid1.Cells[4,i]:=timetostr(t2);
тут не лабел а string grid I- идентификатор строки, он изменяется во время выполнения


 
Palladin   (2003-03-09 23:46) [6]

используй
DateTimeToStr
StrToDateTime



 
Anatoly Podgoretsky   (2003-03-09 23:58) [7]

Ты код приведи, а не обрывки


 
mmmh   (2003-03-10 21:04) [8]

по таймеру t1 := strtotime(StringGrid1.Cells[2,i]);
t2 := t1 - strtotime(times);
StringGrid1.Cells[4,i]:=timetostr(t2);
T1 t2 - tdatetime Итак заносим в т1 - время когда вставать от компа. допустим 22:00:00
теперь в т2 заносим время когда вставать минус текущее время например 19:00:00
в итоге получаем сколько осталось нам 3:00:00. но если допустим время допустим 1:00:00 вставать То сосчитает неверно


 
Kair   (2003-03-10 21:34) [9]

Palladin ©


 
sniknik   (2003-03-10 21:56) [10]

mmmh (10.03.03 21:04)
тебя просят код, что откуда а не оконечные присваивания.

повторю уже прозвучавшее но
> время когда вставать от компа. допустим 22:00:00
> минус текущее время например 19:00:00
> ... и т.д.

бессмыслено так считать, потому что "если допустим время допустим 1:00:00" то это уже другой день! его тоже надо принимать в расчет. за днем тянется месяц за месяцем год. не включая их получиш ошибки на переходе.


 
mmmh   (2003-03-10 23:55) [11]


ну блин кликаем по батону . Происходит расчет время now + сколько то еще времени из едита.
i:=1;
stringgrig1.cells[2,i]:= strtotime(times)+strtotime(edit1.text); // times -переменная хронит время now
вот и весь расчет.


 
zolotov   (2003-03-11 00:24) [12]

Просто так не получится отнять или прибавить какое-то время к текущему. Нужно, действительно, учитывать дни. И для это вручную нужно писать весь код, отдельно работая с часами минутами и секундами.
Вот тебе пример для работы с датами.

Year:=Round(((YearN-y)*12+MonthN-m)/12);
Month:=((YearN-y)*12+MonthN-m)-Year*12;
if Month<0 then
begin
Month:=Month+12;
Year:=Year-1;
end;
Day:=DayN-d;
if Day<0 then
begin
Month:=Month-1;
if Month<0 then
begin
Month:=Month+12;
Year:=Year-1;
end;
Day:=Day+30;
end;

Так что дерзай. И примерно также нужно написать для времени.


 
Anatoly Podgoretsky   (2003-03-11 00:37) [13]

Ничего такого сложного писать не требуется, если T2 < T1 then T2:=T2+24, после этого смело можно отнимать T1 от T2


 
zolotov   (2003-03-11 00:48) [14]

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


 
sniknik   (2003-03-11 01:13) [15]

да какая разница, либо отделить дни и считать следующий +24 либо считать с датой и сделать универсально. но в любом случае переход надо учитывать.

(держать время вместе с датой по моему логичнее, иначе возможна путаница, 1:00:00 меньше чем 3:00:00 тогоже дня но больше 21:00:00 предыдущего, хотя разница между ними 2 часа в любом случае только знаком отличается, а если день виден то все очевидно)


 
Palladin   (2003-03-11 01:33) [16]


> mmmh

дни тем более актуальны когда ты решишь поспать более 24 часов :)
ляжешь 1 числа в 23:00 а вставать тебе 3 числа в 1:00... :)
и встанешь ты по своей проге через 2 часа, если не будешь держать данные с днями...

а если делать еще проще, то накой черт тебе эта разница...
ставь на таймере проверку текущего времени и при наступлении тебе нужного делай что тебе надо...


 
Anatoly Podgoretsky   (2003-03-11 09:30) [17]

sniknik © (11.03.03 01:13)
Конечно, но если это какое то расписание, то дата может быть лишней и тогда дожно выполняться или правило T2>T1 или проводиться корректировка на 24 часа, в случае T2<T1, или в некоторых случаях делаться две записи от T1 до полуночи и от полуночи до T2, в зависимости от условий задачи. Это особенно нужно для тех случаев когда это представленно в текстовом виде.
В общем задачка для первого, второго класса.


 
theodor_iv   (2003-03-11 10:17) [18]

Если не спать больше суток, то
сколько_спать := Frac(1 + время_когда_вставать - время_сейчас);

Все переменные типа TDateTime и содержат только время (без дат)


 
uw   (2003-03-11 12:02) [19]

Чем мудрее вопрос, тем больше постов. (с) uw.


 
mmmh   (2003-03-11 23:18) [20]

кто хочет посмотреть на мой труд может качать прогу для администрирования компьютерных клубов. www.mblspb.nm.ru/sr.rar



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

Форум: "Основная";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.015 c
14-76627
BALU1111
2003-03-07 19:06
2003.03.24
А почему люди домой не идут???


3-76365
SKing
2003-03-06 13:09
2003.03.24
Открытие запороленной mdb?


9-76258
Tihas
2002-10-21 01:18
2003.03.24
Как сделать так , чтобы фигура имела нормали как...?


8-76521
Maz
2002-12-11 12:16
2003.03.24
Flash в Delphi


14-76571
Vvedensk
2003-03-08 09:06
2003.03.24
Проблема с D7 при установки компонентов





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