Registriert seit: 2. Mär 2004
5.508 Beiträge
Delphi 5 Professional
|
AW: DateTimePicker 2.Donnerstag im Monat anzeigen
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
|
|
Zitat
|