Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: datetimepicker wochentag?

  Alt 31. Dez 2006, 12:26
Hallo Tom,

lege dir eine Unit DateUtilsEx an und packe deine Kalenderfunktionen dort rein:

Delphi-Quellcode:
function IsNationalHoliday(dt: TDateTime): Boolean;
begin
  Result := DayOfTheYear(dt) = 1;
end;

function IsWorkDay(dt: TDateTime): Boolean;
begin
  Result := (DayOfWeek(dt) in [2..6])
      and not IsNationalHoliday(dt);
end;

function NextWorkDay(dt: TDateTime): TDateTime;
begin
  Result := Trunc(dt);
  repeat
    Result := Result + 1;
  until IsWorkDay(Result);
end;

function NextWeekDay(dt: TDateTime): TDateTime;
var
  wd: Integer;
begin
  wd := DayOfWeek(dt);
  Result := Trunc(dt) + Succ(Ord(wd > 5) + Ord(wd = 6));
end;

function NextMonday(dt: TDateTime): TDateTime;
begin
  Result := dt + (7 - Pred(DayOfTheWeek(dt))) mod 7;
end;
Wenn du IsNationalHoliday() geschickt erweiterst, dann hast du eine lokalisierbare Allgemeinlösung. Die lokalisierten Wochentagsnamen findest du in der Unit SysUtils (ShortDayNames bzw. LongDayNames).

Guten Rutsch
  Mit Zitat antworten Zitat