Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подсчёт разницы дат [D7, WinXP]


sergeii ©   (2008-01-28 10:56:00) 

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


homm   (2008-01-28 23:14:00) [1]

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

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


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


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

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


homm   (2008-01-28 22:04:00) [3]

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

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

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


KilkennyCat   (2008-01-28 19:12:00) [4]

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


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


Anatoly Podgoretsky   (2008-01-28 14:59:00) [5]


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

87677,6719444444


Anatoly Podgoretsky   (2008-01-28 14:55:00) [6]


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

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


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

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


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


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

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


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

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

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

Спасибо


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

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

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


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

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

Спасибо


KilkennyCat   (2008-01-28 11:16:00) [12]

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

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


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

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

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


KilkennyCat   (2008-01-28 11:10:00) [14]

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

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


KilkennyCat   (2008-01-28 11:09:00) [15]

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


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


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

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


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

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо