![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
нужно сгенерить дату следующего дня и определенное время [D7, XP]
wordmen © (2009-06-26 15:32:00)Мне нужно сгенерить дату следующего дня и определенное время - 12:45
При выполнении нижеприведенного кода показывает значение 27.06.09 12:00(с учетом что текущая дата 26.06.2009)
почемуто время 12:45 никак не хочет ставиться.
Var
Y,M,D,H,min,sec,msec : word;
S, sD,sM : string;
Dat : TDateTime;
sdFormat: TFormatSettings;
Begin
...
sdFormat.DateSeparator := '.';
sdFormat.TimeSeparator := ':';
sdFormat.ShortDateFormat := 'dd.mm.yy';
sdFormat.LongDateFormat := 'dd.mm.yyyy';
Dat:=Now;
DecodeDateTime(Dat,Y,M,D,H,min,sec,msec);
d:=d+1;
if D<10 Then sD:='0'+IntToStr(D)
else sD:=IntToStr(d);
if M<10 Then sM:='0'+IntToStr(M)
else sM:=IntToStr(M);
s:= sD+'.'+sM+'.'+IntToStr(Y)+' 12:45';
Dat:= StrToDateTimeDef(s,0);
MaskEdit1.Text:= DateTimeToStr(Dat);
End;
wordmen (2009-06-26 17:41:00) [1]Все работает, но если присвоить это значение MaskEdit1 всеравно пишет не 12:45, 12:00. 45 минут кудато деваются
Маска в MaskEdit1.EditMask= !99/99/00 !90:00;1;_
Получается все дело в маске. Я перепробовал по разному - не получается.
Anatoly Podgoretsky (2009-06-26 17:02:00) [2]Ну тогда замени int(now) на Date
wordmen (2009-06-26 17:00:00) [3]Спасибо.
> Сперва надо было в справку отправить... Он же все равно
> так не поймет
И так понятно:
1 + 12.75/24
1 - это прибавляется один день
12.75/24 - это чачть суток, которая равна 12 часам плюс 0,75 - это часть часа : 0,75*60 мин = 45 мин. Поэтому 12,75 - это 12:45
Dennis I. Komarov (2009-06-26 15:44:00) [4]
> RWolf © (26.06.09 15:39) [2]
Сперва надо было в справку отправить... Он же все равно так не поймет
%)
RWolf (2009-06-26 15:39:00) [5]хм…
var
tomorrow1245:TDateTime;
tomorrow1245 := int(now) + 1 + 12.75/24;
wordmen (2009-06-26 15:35:00) [6]Маска в MaskEdit1.EditMask= !99/99/00 !90:00;1;_