Как да получите TDateTime от TDateTime минус няколко часа
Какви са трудностите ?
var T1, T2: TDateTime
T1: = сега;
T2: = T1 - strtodatetime ("30.12.1890 00:05:00");
30.12.1890 г. - Не съм сигурен какво е правилно, но тази дата (проверка и промяна), функцията datetimetostr (0) трябва да се върне
TDateTime - константа = няколко часа или променлива
може би не разбирам нещо или работи:)
Не трябваше да коментирате това, това е просто операция с TDateTime +/- константа/променлива, всичко останало може да бъде изхвърлено.
Опитах това и получих толкова различни резултати. Защо?
Нямам такава функция в D5
За да не се вижда, носете кода
Това е целият код на събитието dblclick на формуляра
Защо ме хвърлиха в друг форум. Е, Бог да ги благослови:)
TDateTime: = TDateTime-h/24 // h: брой часове
Съгласен съм с> [12]
TDateTime: = TDateTime-h/24.0 // h: брой часове
да, нямам такъв модул
благодаря (аз самият не го осъзнах), но проблемът остава.
защо добавя часове?
и ако мине за един ден, тогава денят намалява с един.
Не разбирам!
TDateTime е двоен тип, където целочислената част е броят на дните, в които има 24 земни часа, а дробната част е частта от времето от един ден.
Това означава, че за да извадите няколко часа iH: integer от датата dt: TDateTime (например), трябва да приведете тези часове към съотношението iH/24.0 и да извадите от датата:
dt: = (dt - iH/24,0);
Както беше отбелязано по-горе, в [12]
Съгласен съм с> [12]
с малко резервации,
Просто трябва да имате предвид, че:
двойно 1.0 = 1 ден в TDatetime,
и ако извадите от TDatetime h/24.0,
след това при преминаване на границата до 1,0 двойно,
част от секундата ще бъде загубена (В края на краищата, двойно),
Следователно, ако имате нужда точно от - N часа, тогава е по-добре да маниаци
с DecodeTime () - EncodeTime () .
и какво казва помощта на функцията IncHour?