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

Вниз

TDatetime.   Найти похожие ветки 

 
SergP ©   (2003-11-12 09:33) [0]

Есть ли в Дельфи встроенные функции или процедуры для того чтобы:
1. Узнать разницу между двумя TDateTime выраженную в кол-ву секунд.

2. Добавить к TDatetime некоторое кол-во секунд (из integer)?


 
Романов Р.В. ©   (2003-11-12 09:39) [1]

TDateTime type

Most VCL objects represent date and time values using the TDateTime type. The integral part of a TDateTime value is the number of days that have passed since 12/30/1899. The fractional part of a TDateTime value is fraction of a 24 hour day that has elapsed.

Делай выводы


 
MBo ©   (2003-11-12 09:39) [2]

Нет желания посмотреть в хелпе описание сущности типа TDateTime?
А если количество секунд в сутках не сумеешь подсчитать, то АП является хранителем этого секрета.


 
ЮЮ ©   (2003-11-12 09:42) [3]

если эти DateTime получены как Now() в ходе работы приложения, то следует обратить внимание на GetTickCount, на которую и перевод часов во время работы не скажется


 
Anatoly Podgoretsky ©   (2003-11-12 09:52) [4]

MBo © (12.11.03 09:39) [2]
Я его сразу продаю - в сутках 86400 секунд


 
AntonVS ©   (2003-11-12 10:01) [5]

DateTimeToTimeStamp(DateTime: TDateTime)
type TTimeStamp = record
Time: Integer; {кол-во миллисекунд после 12 часов}
Date: Integer; {кол-во дней после 1.1.0001}
end;

TimeStampToMSecs(const TimeStamp: TTimeStamp): Comp; - общее кол-во миллисек.


 
AntonVS ©   (2003-11-12 10:08) [6]

по-поводу второго:
procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);
function EncodeDate(Year, Month, Day: Word): TDateTime;


 
Anatoly Podgoretsky ©   (2003-11-12 10:10) [7]

Пошли фантазии.


 
Andrew Volkov   (2003-11-12 10:27) [8]

Я не нашел встроеннй функции...долго не искал, но помойму их все равно нету

По поводу первого.
Все что идет в целой части числа относится к году, месяцу и дню. Все остальной идет в дробной части. Отсюда в сутках, как сказали раньше 86400 секунд. Значит, которые помещаются в единицу. Отсюда и считаем (1DateTime-2DateTime)/(1/86400)=разница в секундах.

По поводу второго - из первого
(1/86400)*количество секунд
и все это плюс 1DateTime=новый 1DateTime с приращением

Вот вроде и все...


 
SergP ©   (2003-11-12 14:32) [9]


> ЮЮ © (12.11.03 09:42) [3]
> если эти DateTime получены как Now() в ходе работы приложения,
> то следует обратить внимание на GetTickCount, на которую
> и перевод часов во время работы не скажется


Нет. Просто в базе одного форума дата и время хранится в виде mediumint(8)unsigned, я так понял что это кол секунд от 1970 года. Вот и нужно преобразовывать.


> Anatoly Podgoretsky © (12.11.03 09:52) [4]
> MBo © (12.11.03 09:39) [2]
> Я его сразу продаю - в сутках 86400 секунд


Большое спасибо. А то я никогда бы до этого не додумался. :)


> Andrew Volkov (12.11.03 10:27) [8]
> Я не нашел встроеннй функции...долго не искал, но помойму
> их все равно нету
>
> По поводу первого.
> Все что идет в целой части числа относится к году, месяцу
> и дню. Все остальной идет в дробной части. Отсюда в сутках,
> как сказали раньше 86400 секунд. Значит, которые помещаются
> в единицу. Отсюда и считаем (1DateTime-2DateTime)/(1/86400)=разница
> в секундах.
>
> По поводу второго - из первого
> (1/86400)*количество секунд
> и все это плюс 1DateTime=новый 1DateTime с приращением
>
> Вот вроде и все...


Хм. просто у меня почему-то сначала была уверенность что 1DateTime-2DateTime возвращает целое число (кол-во суток). Попробовал. Оказалось что все-таки вещественное. Так что все нормально уже.

ЗЫ.. Ну и любят же мастера поиздеваться над народом...
А вопрос то я задавал: "существуют ли встроенные средства?" а не "Помогите написать такой код".


 
Andrew Volkov   (2003-11-12 16:11) [10]

что 1DateTime-2DateTime возвращает целое число

Правильно, целая часть это количество дней, а фрактальная все - что меньше суток



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
1-78924
Loki128
2003-11-12 08:39
2003.11.24
ListBox


14-79148
Жук
2003-10-23 11:06
2003.11.24
Иваново !


6-79081
beglec
2003-09-29 01:13
2003.11.24
Некоторые изменения в Delphi 7


4-79227
BSL
2003-09-29 11:07
2003.11.24
Чтение физических секторов накопителей


7-79199
DNT
2003-09-11 21:34
2003.11.24
Запуск explorer a...