AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wann beginnt bei einem Jahr x die Sommerzeit ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wann beginnt bei einem Jahr x die Sommerzeit ?

Ein Thema von hoika · begonnen am 10. Jan 2014 · letzter Beitrag vom 14. Jan 2014
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.199 Beiträge
 
Delphi 12 Athens
 
#1

AW: Wann beginnt bei einem Jahr x die Sommerzeit ?

  Alt 11. Jan 2014, 21:50
Joar, stell dir mal vor die sind dann irgendwann mal gleich, weil jeder alles vom Anderen geklaut hat ... dann hat man ja nix mehr zum Meckern.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Wann beginnt bei einem Jahr x die Sommerzeit ?

  Alt 12. Jan 2014, 12:49
Joar, stell dir mal vor die sind dann irgendwann mal gleich, weil jeder alles vom Anderen geklaut hat ... dann hat man ja nix mehr zum Meckern.
Das ist eine völlig neue Sichtweise.
  Mit Zitat antworten Zitat
Codix32

Registriert seit: 23. Apr 2009
137 Beiträge
 
Delphi 2005 Personal
 
#3

AW: Wann beginnt bei einem Jahr x die Sommerzeit ?

  Alt 12. Jan 2014, 21:52
@Furtbichler,

die Funktion ist ungenau.

Für das Jahr 2018 kriege ich den 1.04.2018 als Sommerzeitbeginn,
weil der 1.04.2018 ein Sonntag ist.

Delphi-Quellcode:
Function AnfangDerSommerzeit(Jahr : Word) : TDateTime;
Begin
   result := EncodeDate(Jahr,4,1);
   result := (result - DayOfWeek(Result))+1;
End;
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Wann beginnt bei einem Jahr x die Sommerzeit ?

  Alt 12. Jan 2014, 22:17
@Furtbichler,

die Funktion ist ungenau.

Für das Jahr 2018 kriege ich den 1.04.2018 als Sommerzeitbeginn,
weil der 1.04.2018 ein Sonntag ist.

Delphi-Quellcode:
Function AnfangDerSommerzeit(Jahr : Word) : TDateTime;
Begin
   result := EncodeDate(Jahr,4,1);
   result := (result - DayOfWeek(Result))+1;
End;
Es ist auch nur ein kleiner Fehler drin (das war der Intelligenztest )
Delphi-Quellcode:
Function AnfangDerSommerzeit(Jahr : Word) : TDateTime;
Begin
   result := EncodeDate(Jahr,4,1) - 1; // letzter Tag im März, statt erster Tag im April :o)
   result := (result - DayOfWeek(Result))+1;
End;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Codix32

Registriert seit: 23. Apr 2009
137 Beiträge
 
Delphi 2005 Personal
 
#5

AW: Wann beginnt bei einem Jahr x die Sommerzeit ?

  Alt 12. Jan 2014, 22:45
@Furtbichler,

die Funktion ist ungenau.

Für das Jahr 2018 kriege ich den 1.04.2018 als Sommerzeitbeginn,
weil der 1.04.2018 ein Sonntag ist.

Delphi-Quellcode:
Function AnfangDerSommerzeit(Jahr : Word) : TDateTime;
Begin
   result := EncodeDate(Jahr,4,1);
   result := (result - DayOfWeek(Result))+1;
End;
Es ist auch nur ein kleiner Fehler drin (das war der Intelligenztest )
Delphi-Quellcode:
Function AnfangDerSommerzeit(Jahr : Word) : TDateTime;
Begin
   result := EncodeDate(Jahr,4,1) - 1; // letzter Tag im März, statt erster Tag im April :o)
   result := (result - DayOfWeek(Result))+1;
End;
Ups, danke Sir Rufo,

ich hab gerade so was gemacht und vom Aussehen her gefällt mir es nicht:
Delphi-Quellcode:
Function AnfangDerSommerzeit(Jahr : Word) : TDateTime;
Begin
 if DayOfweek(EncodeDate(Jahr,4,1)) > 1 then
   result := EncodeDate(Jahr,4,1)
 else
   result := EncodeDate(Jahr,3,31);

   result := (result - DayOfWeek(Result))+1;
End;
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Wann beginnt bei einem Jahr x die Sommerzeit ?

  Alt 13. Jan 2014, 06:28
Ups, danke Sir Rufo,
Dem schließe ich mich an.
Zitat:
ich hab gerade so was gemacht und vom Aussehen her gefällt mir es nicht:
Lass es doch so wie von Sir Rufo korrigiert.
Meine erste Version war übrigens:
Delphi-Quellcode:
Result := EncodeDate(Year,4,1);
Repeat
  Result := Result - 1;
Until DayOfWeek(Result)=1;
Ich persönlich finde die Schleife leichter verständlich: Nimm den 1.April und zähle dann Rückwärts bis zum letzten Sonntag im März.

Nach kurzem Studium der DateUtils würde ich doch folgende Version nehmen:
Delphi-Quellcode:
Function LastSundayInMarch(Year : Word) : TDateTime;
Begin
  Result := EncodeDate(Year,4,1);
  Result := Result - DateUtils.DayOfTheWeek(Result);
End;
Gut zu wissen, das 'DayOfTheWeek' und 'DayOfWeek' unterschiedliche Ergebnisse liefern

Geändert von Furtbichler (13. Jan 2014 um 06:55 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Wann beginnt bei einem Jahr x die Sommerzeit ?

  Alt 13. Jan 2014, 06:37
Hallo,

ich habe das jetzt ähnlich umgesetzt,
also mit einer Schleife, die ab dem 31.3. solange rückwärts zählt,
bis ein Sonntag rauskommt (es sei denn, der 31.3. ist bereits ein Sonntag).

Und ich habe auch Unit-Tests dazugepackt

Übrigens:
Das mit dem Result :=
gibt es meines Wissens bereits seit Turbo-Pascal.


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz