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

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

DecodeDate [Delphi, Windows]


Kirill ©   (2007-08-07 00:28:00) 

Не знаю даже куда писать?
Создал пустое приложение на Delphi

procedure TForm1.FormCreate(Sender: TObject);
var wYear, wDay, wMonth : word;
begin
 DecodeDate(Now,wYear,wMonth,wDay);
 ShowMessage(IntToStr(wYear));
end;
Показывает 2007

В своей программе использую synautil
в ней функция

function Rfc822DateTime(t: TDateTime): string;
var
 wYear, wMonth, wDay: word;
begin
 DecodeDate(t, wYear, wMonth, wDay);
 Result := Format('%s, %d %s %s %s', [MyDayNames[DayOfWeek(t)], wDay,
   MyMonthNames[1, wMonth], FormatDateTime('yyyy hh":"nn":"ss', t), TimeZone]);
end;


исправил function Rfc822DateTime(t: TDateTime): string;
var
 wYear, wMonth, wDay: word;
begin
 DecodeDate(t, wYear, wMonth, wDay);
 MessageBox(0,PChar(IntToStr(wYear)),'Test',0);
 Result := Format('%s, %d %s %s %s', [MyDayNames[DayOfWeek(t)], wDay,
   MyMonthNames[1, wMonth], FormatDateTime('yyyy hh":"nn":"ss', t), TimeZone]);
end;
и перадаю Now
в итоге вижу 3906.

Написал такой program Project1;

uses
 Kol;

var wYear, wDay, wMonth : word;
begin
 DecodeDate(Now,wYear,wMonth,wDay);
 MsgOK(Int2Str(wYear));

end.
Результат 2007.

Не понимаю - кто виноват? synautil?


Kirill   (2007-08-07 10:23:00) [1]

Joe,
Thank you very much. This work!


Jon   (2007-08-07 03:44:00) [2]

See my reply in the Synapse mailing list.

Do not mix VCL and KOL DateTime functions!
In SynaUtil uses section replace SysUtils with KOL.

From the KOL documentation:

const VCLDate0 = 693594;
Value to convert VCL "date 0" to KOL "date 0" and
back. This value corresponds to 30-Dec-1899, 0:00:00.
So, to convert VCL date to KOL date, just subtract
this value from VCL date. And to convert back from KOL
date to VCL date, add this value to KOL date.


Kirill   (2007-08-07 00:32:00) [3]

Вряд ли.
Может ли Now меняться в программе?

В пустой программе он равен 39300,...
В моей больше 700000,...


Наверх

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