Registriert seit: 13. Apr 2017
8 Beiträge
|
quelltext erklären
13. Apr 2017, 17:13
hallo! ich brauche für mein programm folgenden quelltext, der irgendwie überprüft, ob sommer oder winterzeit ist. aber ich hab ihn auf einer englischen website gefundenund ehrlich gesagt verstehe ich auch nicht was da gemacht wird. kann mir vielleicht jemand schritt für schritt (mit kommentaren) erklären, was hier wie gemacht wird, also sozusagen die theorie, die anweisungen an den computer (versteht man was ich meine?) und es wär super wenn das auf deutsch ginge )
Delphi-Quellcode:
function SommerWinterOrientierung(Year: Cardinal; var Start, Stop: TDateTime): Boolean;
var
TZ: TTimeZoneInformation;
function DecodeSwitchOverDate(Year: Cardinal; const Time: TSystemTime): TDateTime;
var
I: Cardinal;
begin
Result := EncodeDateTime(Year, Time.wMonth, 1, Time.wHour, Time.wMinute, Time.wSecond, 0);
if Time.wDay = 5 then
begin
Result := DateOf(EndOfTheMonth(Result)) + TimeOf(Result);
while PRED(DayOfWeek(Result)) <> Time.wDayOfWeek do
Result := IncDay(Result, -1)
end
else
begin
while PRED(DayOfWeek(Result)) <> Time.wDayOfWeek DO
Result := IncDay(Result);
for I := 1 to PRED(Time.wDay) do
Result := IncWeek(Result)
end
end;
begin
if GetTimeZoneInformation(TZ) = TIME_ZONE_ID_UNKNOWN then
Result := false
else
begin
Start := DecodeSwitchOverDate(Year, TZ.DaylightDate);
Stop := DecodeSwitchOverDate(Year, TZ.StandardDate);
Result := true
end
end;
function StartOfDST(Year: Cardinal): TDateTime;
var
Stop: TDateTime;
begin
if not SommerWinterOrientierung(Year, Result, Stop) then
Result := 0
end;
function EndOfDST(Year: Cardinal): TDateTime;
var
Start: TDateTime;
begin
if not SommerWinterOrientierung(Year, Start, Result) then
Result := 0
end;
function IsDaylightSavingTime(Input: TDateTime): Boolean;
var
Start, Stop: TDateTime;
begin
Result := SommerWinterOrientierung(YearOf(Input), Start, Stop) AND (Input >= Start) AND (Input < Stop)
end;
|
|
Zitat
|