Einzelnen Beitrag anzeigen

Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#6

Re: Datum bestimmen von z.B. 3. Sonntag jedes Monats

  Alt 31. Jul 2003, 18:06
Hallo AndreasZZZ,
so, jetzt der letzte Versuch ...
Delphi-Quellcode:
function Get_next_Wochentag_pro_Monat(iWelcher, iWochentag: Integer; BaseDate: TDateTime): TDateTime;
var
  I: Integer;
  BaseDay, BaseMonth, BaseYear: Word;
  Day, Month, Year: Word;
  Times: Integer;
begin
  Result := 0;
  DecodeDate(BaseDate, BaseYear, BaseMonth, BaseDay);
  if not(iWelcher in [1..5]) then
  begin
    ShowMessage('Blödsinnige Eingabe. Bitte wiederholen');
    Exit;
  end;
  Times := 0;
  DecodeDate(BaseDate, Year, Month, Day);
  if Day > (iWelcher * 7) then
  begin
    if Month < 12 then
    begin
      Inc(Month, 1);
    end
    else
    begin
      Month := 1;
      Inc(Year, 1);
    end;
  end;
  Result := EncodeDate(Year, Month, 1) + Frac(BaseDate);
  for I := 1 to 31 do
  begin
    if DayOfWeek(Result) = iWochentag then
    begin
      Inc(Times, 1);
      if Times = iWelcher then
      begin
        Break;
      end
    end;
    Result := Result + 1;
  end;
  DecodeDate(Result, Year, Month, Day);
  if (Times < iWelcher) or (Baseday > Day) or (BaseMonth <> Month) then
  begin
    BaseDay := 1;
    if BaseMonth < 12 then
    begin
      Inc(BaseMonth, 1);
    end
    else
    begin
      BaseMonth := 1;
      Inc(BaseYear, 1);
    end;
    BaseDate := EncodeDate(BaseYear, BaseMonth, 1) + Frac(BaseDate);
    Result := Get_next_Wochentag_pro_Monat(iWelcher, iWochentag, BaseDate);
  end;
end;
bye
Angehängte Dateien
Dateityp: zip get_next_wochentag_pro_monat3.zip (232,8 KB, 10x aufgerufen)
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat