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

Вниз

Подсчёт разницы дат   Найти похожие ветки 

 
sergeii   (2008-01-28 10:56) [0]

Добрый день,
Может кто нибудь знает, как подсчитать разницу между двумя датами и ответ получить в часах.  
Спасибо.


 
Семеныч   (2008-01-28 11:05) [1]

У типа TDateTime (он же TDate) целая часть - это кол-во дней, прошедших после условной "нулевой" даты, а дробная часть - это часть суток.

Значит, так: (Date1 - Date2) * 24


 
Плохиш ©   (2008-01-28 11:06) [2]


> Может кто нибудь знает, как подсчитать разницу между двумя
> датами и ответ получить в часах.

Сначала найти разницу и результат умножить на количество часов в сутках.


 
KilkennyCat ©   (2008-01-28 11:09) [3]

function SecondsBetween(const ANow: TDateTime; const AThen: TDateTime): Int64;


 
KilkennyCat ©   (2008-01-28 11:10) [4]

> Плохиш ©   (28.01.08 11:06)

отлично. и какова погрешность тогда?


 
Семеныч   (2008-01-28 11:13) [5]

> KilkennyCat ©   (28.01.08 11:10) [4]

Такая же, как у типа TDateTime.


 
KilkennyCat ©   (2008-01-28 11:16) [6]

> Семеныч   (28.01.08 11:13)

да ну?
ну тогда две даты: 00:00:13 01.01.1980 и 05:40:32 01.01.1990


 
sergeii   (2008-01-28 11:17) [7]

У меня есть база в каторой естё поле когда клиент подклиучился к базе и когда отключился мне надо подсчитать сколько времени он работал, есле поможет то база Firebird 1.5

Спасибо


 
Семеныч   (2008-01-28 11:19) [8]

> KilkennyCat ©   (28.01.08 11:16) [6]

И что? Поясни, в чем фишка?


 
sergeii   (2008-01-28 11:20) [9]

Простите великодушно за предидущее послание :)

У меня есть база, в каторой есть поля д1 и д2 когда клиент подклиучился к базе (д1) и когда отключился (д2) мне надо подсчитать сколько времени он работал, есле поможет то база Firebird 1.5

Спасибо


 
Плохиш ©   (2008-01-28 11:21) [10]


> KilkennyCat ©   (28.01.08 11:16) [6]

Тоже хотел бы узнать, в чём фишка?


 
ketmar ©   (2008-01-28 11:29) [11]

>[9] sergeii (28.01.08 11:20)
сказали ж: преобразуй в TDateTime и дальше DateUtil тебе в помощь.


 
Anatoly Podgoretsky ©   (2008-01-28 14:55) [12]


> отлично. и какова погрешность тогда?

Стандартная 15 десятичных разрядов


 
Anatoly Podgoretsky ©   (2008-01-28 14:59) [13]


> ну тогда две даты: 00:00:13 01.01.1980 и 05:40:32 01.01.
> 1990

87677,6719444444


 
KilkennyCat ©   (2008-01-28 19:12) [14]

> [8] Семеныч   (28.01.08 11:19)
> [10] Плохиш ©   (28.01.08 11:21)


извиняюсь, сглючил. почему-то подумалось, что возврат лишь целых дней.


 
homm ©   (2008-01-28 22:04) [15]

> [7] sergeii   (28.01.08 11:17)
> У меня есть база в каторой естё поле когда клиент подклиучился
> к базе и когда отключился мне надо подсчитать сколько времени
> он работал, есле поможет то база Firebird 1.5

С этого нужно было начинать.

SELECT ((UNIX_TIMESTAMP(`Date2`) - UNIX_TIMESTAMP(`Date1`)) / 60 / 60) AS WorkTime …


 
Johnmen ©   (2008-01-28 23:00) [16]


> homm ©   (28.01.08 22:04) [15]

А это что такое UNIX_TIMESTAMP? Т.е. откедова?


 
homm ©   (2008-01-28 23:14) [17]

> [16] Johnmen ©   (28.01.08 23:00)
> А это что такое UNIX_TIMESTAMP? Т.е. откедова?

По крайней мере в MySQL такая функция есть. Возращает количество секунд прошедших с начала эпохи юникс.



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

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

Наверх




Память: 0.5 MB
Время: 0.013 c
15-1200906794
Sairex
2008-01-21 12:13
2008.02.24
Подскажие аналоги компонента TRichView


6-1180793367
Denis_Zhulanov
2007-06-02 18:09
2008.02.24
TICQClient и DLL


15-1200760407
Nobody
2008-01-19 19:33
2008.02.24
Помогите настроить домен


4-1183993259
AlexanderMS
2007-07-09 19:00
2008.02.24
Рисование с "прозрачным" цветом.


15-1200748755
Putnik
2008-01-19 16:19
2008.02.24
Статьи по работе с указателями