Thema: Delphi Problem mit MonthOf

Einzelnen Beitrag anzeigen

SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#13

AW: Problem mit MonthOf

  Alt 23. Okt 2012, 20:50
Das mit dem Kalender ist nicht so einfach. Den korrekten Monat einer KW zu erhalten ist so eine Sache und wie ihr beschrieben habt eigentlich gar nicht möglich, wenn die KW über zwei Monate geht.
Ich habe hierzu den Kunden noch mal gefragt wie er es denn gerne haben möchte. Wenn ich die Antwort habe, dann gebe ich noch mal über den aktuellen Status Bescheid.

In irgendeinem Excel-Forum oder Blog gabs eine Funktion, die wir umgeschrieben haben.
Delphi-Quellcode:
function GetMonatFromKW(Jahr, KW: String): String;
var
  tage: Int16;
  Date, Date2: TDate;
  wochentag, wochentag2: word;
  year, month, day: word;
begin
  // Was für ein tag ist der 1.1.xxxx
  Date := StrToDate('01.01.' + Jahr);
  wochentag := DayOfWeek(Date);
  // Was für ein Tag ist der 31.12.xxxx
  Date2 := StrToDate('31.12.' + Jahr);
  wochentag2 := DayOfWeek(Date2);
  // Wenn der erste oder letzte Tag eines Jahres ein Donnerstag ist
  // dann hat das Jahr 53 KWs
  if (wochentag = 5) OR (wochentag2 = 5) then begin
    // Alle außer KW 53 werde ignoriert und normal berechnet
    if KW = '53then begin
      Result := '12';
      Exit;
    end;
  end;
  // Anzahl der Tage seid Anfang des Jahres
  tage := StrToInt(KW) * 7;
  tage := tage - ((wochentag));
  // Zum Datum hin rechnen
  Date := Date + tage;
  // Monat auslesen und zurückgeben
  DecodeDate(Date, year, month, day);
  Result := inttostr(month);
end;
Leider funktioniert diese Berechnung aber auch nicht ganz, ich hätte bei manchen Ergebissen etwas anderes gesagt.
Warten wir mal ab, was der Kunde sagt.
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat