Форум: "Основная";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];
ВнизTDateTime Найти похожие ветки
← →
Лана Розанова (2002-10-01 11:17) [0]Как к переменной TDateTime прибавить 1-у минуту?
СПАСИБО!!!
← →
NP-237 (2002-10-01 11:22) [1]+EncodeTime(Hour, Min, Sec, MSec: Word)
+ EncodeTime(0, 0, 1, 0)
← →
Лана Розанова (2002-10-01 11:38) [2]А если min=59 она учтет переход часа, дня, месяца, года?
← →
NP-237 (2002-10-01 11:44) [3]Конечно. Ведь TDateTime - это обычный тип Double.
Я например последний день месяца определяю как
EnCodeDate(2002,6,1)-1
← →
han_malign (2002-10-01 11:50) [4]dt:=dt+1.0/(60*24);{1 день/24 часа/60 минут}
поскольку TDateTime это дробное количество дней прошедших с 12/30/1899 (причем и в сторону убывания тоже)- то учтутся все переходы
З.Ы. На самом деле самое сложное это конвертация DateTime в реальное время и обратно, но это уже все сделано.
Из help-а
0 12/30/1899 12:00 am
2.75 1/1/1900 6:00 pm
-1.25 12/29/1899 6:00 am
35065 1/1/1996 12:00 am
← →
User-log (2002-10-01 12:12) [5]А у меня так не получается:
var
DT,DateStart,TimeStart,DateEnd,TimeEnd:TDateTime;
begin
DT:=now;
DecodeTime(DT,hour,min,sec,msec);
DecodeDate(DT,year,month,day);
DateStart:=EncodeDate(year,month,day);
TimeStart:=EncodeTime(hour,min,sec,msec);
TimeEnd:=TimeStart+EncodeTime(0,1,0,0);
Как, если время стало 00:00:00, прибавить день?
end;
← →
NP-237 (2002-10-01 12:20) [6]Работать с датой а не с временем.
DateStart := EncodeDate(year,month,day);
DateEnd := DateStart+EncodeTime(0,1,0,0);
Ну а чистое время можно уже выдернуть.
← →
NP-237 (2002-10-01 12:24) [7]описка, надо
DateStart := EncodeDate(year,month,day)+TimeStart;
← →
han_malign (2002-10-01 12:27) [8]2User-log
35065 дней от 12/30/1899 минус 1/24/60(одна минута) равно
35064 дня и (24*60-1)/(24*60)(23 часа и 59 минут) от 12/30/1899
как видите число уменьшилось (принцип адитивности имеет обратную силу(65535.99+0.01=65536 - день следующий))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c