Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
Delphi 3 Standard
|
Re: Datum bestimmen von z.B. 3. Sonntag jedes Monats
31. Jul 2003, 19: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
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
-----
|
|
Zitat
|