![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сложение даты/времени [D5, D6, WinME, Win2k, WinXP]
DDDeN © (2004-07-19 11:57:00)Подскажите, плз, как сложить два времени и две даты (т.е мне надо чтобы к дате/времени прибавить определенное кол-во часов минут и секунд).
Alexander1966 (2004-07-21 11:10:00) [1]Есть еще вариант:
const
miliSecOfDay = 86 400 000; // милиCекунд в сутках
miliSecOfHour = 3 600 000; // милиCекунд в часе
miliSecOfMinute = 60 000; // милиCекунд в минуте
dt1:=DateTimeToTimeStamp(TimeStampToMSecs(Date1))
dt1:=dt1 + Day *miliSecOfDay
+ Hour *miliSecOfHour
+ Minute*miliSecOfMinute
+ Sec *1000;
dt2:=MSecsToTimeStamp(TimeStampToDateTime(dt1));
DDDeN (2004-07-21 07:17:00) [2]Спасибо всем!
2 KADAN > EncodeTime помогло.
Решение:
Преобразовать части строковой даты и времени в их целые переменные. Затем преобразовать составляющие в TDateTime. И время, которое прибавляем преобразовать в эту же TDateTime. Затем прибавляем к одному второе и получаем результ.
Всем респект!
Anatoly Podgoretsky (2004-07-20 08:47:00) [3]DDDeN (20.07.04 03:25) [11]
А в каком формате у тебя данные
DDDeN (2004-07-20 05:27:00) [4]Удалено модератором
Примечание: Создание пустых сообщений
DDDeN (2004-07-20 03:25:00) [5]2 Anatoly Podgoretsky
При помощи EncodeTime?
Anatoly Podgoretsky (2004-07-19 19:43:00) [6]Превратить оба параметра в TDateTime и сложить
DDDeN (2004-07-19 18:31:00) [7]Ребята, такая тема, пишу конвертер ДЕКТа. В текстовом файле есть дата и время начала разговора DD/MM/YY HH:MM. И есть длительность соединения HH:MM:SS. Надо получить дату и время окончания разговора. Как, плз??? Преобразовать дату к виду DD.MM.YYYY без Б. А как саму тему???
lexus3d (2004-07-19 15:16:00) [8]Да кстати если к переменной типа Дата прибавить 1 то получишь следующий день!
lexus3d (2004-07-19 15:12:00) [9]Я делал что то подобное, но у меня интервал дат был
kol_day:=Stop_Data-Start_Data;
гдеkol_day:double, кстати сама TDateTime это тот же тип double... делай выводы и пробуй
Анонимщик (2004-07-19 13:22:00) [10]Можно, например, IncMilliSecond.
А можно и совсем вручную. Посмотри, как хранятся в формате TDateTime (Double) время и дата, и вобще тогда делай что хочешь.
KADAN (2004-07-19 12:55:00) [11]посмотри функции EncodeTime и EncodeDate - поймешь принцип
Суслик (2004-07-19 12:25:00) [12]
> VMcL © (19.07.04 12:23) [3]
блин, стандартная очепятка :(((((
VMcL (2004-07-19 12:23:00) [13]>>Суслик © (19.07.04 11:59) [1]
Dat eUtils
Anatoly Podgoretsky (2004-07-19 12:19:00) [14]DDDeN (19.07.04 11:57)
По вопросу у тебя не получается сложения дат, у тебя сложение даты и разницы, так можно, просто прибавляй.
А вот складывать две даты смысла нет, например
1.01.2004 + 1.01.2004 = 2.02.4008
Суслик (2004-07-19 11:59:00) [15]функции
incyear
incday
и т.д.
из модуля datautils