Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

нужно сгенерить дату следующего дня и определенное время [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;_


Наверх

Титульная страница Поиск, карта сайта Написать письмо