Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#8

Re: Wie ermittle ich, welche Zeitzone (Sommer/Winter) z.Zt.

  Alt 25. Mär 2008, 16:32
Aus der unit SRUtils von Simon Reinhardt:

Delphi-Quellcode:
function IsSummertime(ADate:TDateTime):boolean;
var AYear,
    AMonth,
    ADay : word;
    Beginn,
    Ende : TDateTime;
begin
  try
    ADate := trunc(ADate);
    DecodeDate(ADate, AYear, AMonth, ADay);
    if AYear < 1980 then
      { Keine Sommerzeit vor 1980 }
      Result := False
    else begin
      { Beginn der Sommerzeit: }
      Beginn := EncodeDate(AYear, 3, 31);
      while DayOfWeek(Beginn) <> 1 do
        Beginn := Beginn-1;
      { Ende der Sommerzeit: }
      if AYear <= 1995 then
        { bis 1995: letzter So im September }
        Ende := EncodeDate(AYear, 9, 30)
      else
        { ab 1996: letzter So im Oktober }
        Ende := EncodeDate(AYear, 10, 31);
      while DayOfWeek(Ende) <> 1 do
        Ende := Ende - 1;
      Result := (ADate>=Beginn) and (ADate<Ende);
    end;
  except
    Result := False;
  end;
end; {IsSummertime}
Thomas
  Mit Zitat antworten Zitat