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?