Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизРасчет времени! Нужна помощь... Найти похожие ветки
← →
Zilog © (2004-03-24 14:21) [0]короче вся задача такая: есть события вход и выход. время событий храню в real. Считаю за определенный промежуток дней, например за неделю, и все посчитанные промежутки плюсую в одну переменную: AllTime := AllTime+ OutTime - InTime
изначально AllTime := 0.
как я предполагаю там собирается вся необходимая информация типа TDateTime. Вот мне отттуда и надо вытащить коол-во часов, и кол-во оставшихся минут....
часы вытаскиваю так:
h := AllTime/(1/24); (правильно?!)
нужно еще вытащить минуты..
← →
Романов Р.В. © (2004-03-24 14:27) [1]m := (AllTime*24 - h)*60
← →
Digitman © (2004-03-24 14:37) [2]
> как я предполагаю там собирается вся необходимая информация
> типа TDateTime
TDataTime = double
непонятно почему выбран тип real .. сэкономил 2 байта что ли ? зато проиграл в точности и в общей производительности алгоритма
> часы вытаскиваю так:
>
> h := AllTime/(1/24); (правильно?!)
var
Hour, Min, Sec, MSec: Word;
DecodeTime(AllTime, Hour, Min, Sec, MSec); //разложили дроб.часть на часы-минуты-секунды
//Trunc(AllTime) - целая часть, отражающая число полных суток
h := Trunc(AllTime) * 24 + Hour;
← →
Романов Р.В. © (2004-03-24 14:41) [3]
> Digitman © (24.03.04 14:37) [2]
Real по умолчанию равен double
← →
Digitman © (2004-03-24 14:44) [4]
> Романов Р.В. © (24.03.04 14:41) [3]
я почему-то посчитал, что речь идет о Real48
точность в выражении мысли в коде недвусмысленными идентификаторами - главное оружие программера)
← →
Anatoly Podgoretsky © (2004-03-24 14:45) [5]В сутках 24 часа, в часе 60 минут, в минуте 60 секунд, в секунде 1000 миллисекунд, все это хранится в TDateTime как сутки это целое. Можно пользоваться арифметическими операциями умножение и вычитания, мможноо функциями преобразования, в зависимости от того в каком виде нужен результат. Digitman привел функцию для разбиения дробной части на составляющие, а для преобразования целой части используй функцию TRUNC
← →
Zilog © (2004-03-24 14:49) [6]Еще один глюк обнаружил:
AllTime := AllTime+ OutTime - InTime
в AllTime всегда целая часть получается ноль.... отчего то может быть?
← →
Романов Р.В. © (2004-03-24 15:01) [7]
> в AllTime всегда целая часть получается ноль.... отчего
> то может быть?
OutTime - InTime < 1
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c