Einzelnen Beitrag anzeigen

Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Tage zwischen 2 Wochentagen?

  Alt 20. Jun 2005, 20:48
Moin,

ich brauche eine Funktion die mir die Tage zwischen 2 Tagen liefert (als Zahl). Dabei geht es nur darum den Wochentag herauszubekommen. Der "Heute"-Tag hat immer den Index 0, das heisst wenn heute Donnerstag wäre, dann wäre Donnerstag 0, Freitag 1 usw... dementsprechend gilt das gleiche wenn ein anderer Tag wäre. Der Tag muss immer über die ersten 3 Buchstaben des Tages übergeben werden. Ich hatte mir das so gedacht:

Delphi-Quellcode:
function GetDayIdx(Day: string): Byte;
  function IdxByDay(Day: string; DAYS: array of string): Byte;
  var
    I: Integer;
  begin
    Result := 0;
    for I := 0 to 6 do
      if Lowercase(Day) = Lowercase(DAYS[I]) then
        Result := I+1;
  end;
const
  DAYS: array[1..7] of string = ('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun');
var
  Today, DayIdx: Byte;
begin
  Result := 0;
  Today := IdxByDay(DayOfWeekStr(Now), DAYS);
  if Today <> 0 then
  begin
    DayIdx := IdxByDay(Day, DAYS);
    if DayIdx <> 0 then
      Result := IdxByDay(DAYS[DayIdx-Today], DAYS);
  end;
end;
Leider gibt mir das immer "0" zurück. Nochmal anschaulicher was ich vorhabe:

Code:
|mon|tue|wed|thu|fri|sat|sun|
  4   5   6   0   1   2   3
^^^^^^So würde es aussehen wenn heute Donnerstag wäre.

Ich möchte die Funktion nun so aufrufen können:

i := GetDayIdx('tue'); das Ergebnis sollte dann "5" sein....


Hat jemand ne Idee wie ich das hinkriegen kann?
Mario
  Mit Zitat antworten Zitat