Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

AW: DateTimePicker 2.Donnerstag im Monat anzeigen

  Alt 11. Nov 2010, 16:16
Delphi-Quellcode:
// Weekday = Wochentag, 1=sonntag, 2=Montag,...
// position darf von 1 bis 4 liegen
function GetWochentagX(datum:TDateTime; Weekday, position:integer);
var
  monatsanfang : TDateTime;
begin
  monatsanfang := StartOfMonth(datum); // Monatanfang 01.mm.jjjj
  
  if (Weekday < 1) or (Weekday>7) then
    Weekday := 1; // Zur Sicherheit, damit keine Endlosschleife entsteht

  while Weekday <> DayOfWeek(monatsanfang) do
    monatsanfang := monatsanfang + 1.0; // nächster Tag

  result := monatsanfang + 7.0 * (position -1);
end;


// Hilfsfunktionen
function ReplaceDateParts(ADate:TDateTime; year, month, day: Word):TDateTime;
var
   y, m, d : Word;
begin
   DecodeDate(ADate, y, m, d);
   if year <> 0 then y := year;
   if month <> 0 then m := month;
   if day <> 0 then d := day;
   result := EncodeDate(y, m, d);
end;
function StartOfMonth(ADate:TDateTime):TDateTime;
begin
   Result := ReplaceDateParts(ADate, 0, 0, 1);
end;
Andreas
  Mit Zitat antworten Zitat