[Delphi] zmiana daty systemowej

0

czy może mi ktoś powiedzieć jak zmienić datę systemową z poziomu delphi 5

0

W katalogu demos powinieneś mieć gdzieś folder CPL, tam był przykład tworzenia appletu panelu sterowania do zmiany daty.

--

Delphi 6

Pozdrówka

0

Ten kod (Delphi 6) w teorii zmienia date o 2 dni d przodu. W praktyce u mnie zmienia ale cofa przy tym zegar o 5 godzin i nie wiem dlaczego i nie chce mi sie szukac.

Kluczowa jest funkcja API SetSytemTime i struktura SYSTEMTIME (tez API).

[code]uses DateUtils;

procedure TForm1.Button1Click(Sender: TObject);

var
systime: SYSTEMTIME;
begin
DecodeDateTime(IncDay(Now,2), systime.wYear, systime.wMonth, systime.wDay,
systime.wHour, systime.wMinute, systime.wSecond, systime.wMilliseconds);
SetSystemTime(systime);
end;[/code]

======================
dopisane pozniej: juz wiem co z tymi 5 godzinami, trzeba uwzglednic strefe czasowa, bo SetSystemTime ustawia UTC (Universal Standard Time), a ja jestem 5 godzin na zachod od Greenwich.
[code]
uses DateUtils;

procedure TForm1.Button1Click(Sender: TObject);

var
currentdate:TDateTime;
systime: SYSTEMTIME;
zone : TIME_ZONE_INFORMATION;
begin
GetTimeZoneInformation(zone);

currentdate:=Now+EncodeTime(zone.Bias div 60,zone.Bias mod 60,0,0);
currentdate:=IncDay(currentdate,2);
DecodeDateTime(currentdate, systime.wYear, systime.wMonth, systime.wDay,
systime.wHour, systime.wMinute, systime.wSecond, systime.wMilliseconds);

SetSystemTime(systime);
end;

[/code]

Wydaje mi sie, ze bias uwzglednia czas letni, ale tego juz naprawde nie chce mi sie sprawdzac.

--
Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

trzeba uwzglednic strefe czasowa, bo SetSystemTime ustawia UTC (Universal Standard Time), a ja jestem 5 godzin na zachod od Greenwich.

To gdzie ty mieszkasz?
Bo ja na wschód od Grinicz.

0

To gdzie ty mieszkasz?
Bo ja na wschód od Grinicz.

Normalnie godzinę na wschód (czyli w Polsce) ale chwilowo 5 godzin na zachód.

--
Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

var Data:TSystemTime;
begin
GetSystemTime(data);//wes
data.wDay:=22;
SetSystemTime(data);//wstaw
end;

--
"I think I'm Dumb, maybe just happy"

0

procedure Form1.MonthKalendar1Click(Sender: TObject);
Var
SystemTime: TSystemTime;
rok :word;
mies :word;
dzien :word;
begin
GetLocalTime(SystemTime);
DecodeDate(MonthKalendar1.date,Rok,Mies,Dzien) ;
systemTime.wYear := Rok;
SystemTime.wMonth := Mies;
SystemTime.wDay := dzien;
SetlocalTime(SystemTime);
end;

przy użyciu "GetSystemTime(SystemTime);" dziwnie się zachowuje koło północy, ale już nie pamiętam czy przed czy po i czy w zime czy w lato.

1 użytkowników online, w tym zalogowanych: 0, gości: 1