Hallo,
Im Anhang eine Funktion, welche den Starttag einer Kalenderwoche ermittelt.
Auf Grund der verschiedenen Definitionen, an welchem Tag die Woche beginnt, komme ich jetzt nicht weiter
Wie kann ich den
case - teil so gestalten, das es für beide definitionen, also
1.der erste Tag der Woche ist Montag
2.der erste Tag der Woche ist Sonntag
gilt und vereinfacht werden kann.
Delphi-Quellcode:
function Get_StartDay(dVAlue: Integer): DateTime;
var
fCUI: CultureInfo;
FirstDay :DayofWeek;
FirstDate :DateTime;
TempWeek :Integer;
begin
TempWeek:= 1;
If (0 < dValue) and (dVAlue < 54) then
begin
fCUI:= CultureInfo.get_CurrentCulture;
FirstDate:= DateTime.Create(fCUI.DateTimeFormat.Calendar.GetYear(DateTime.Now), 1, 1);
while TempWeek <> dValue do
begin
FirstDate := FirstDate.AddDays(1);
TempWeek:= fCUI.Calendar.GetWeekOfYear(FirstDate
,fCUI.DateTimeFormat.CalendarWeekRule
,fCUI.DateTimeFormat.FirstDayOfWeek);
end;
FirstDay:= fCUI.Calendar.GetDayOfWeek(FirstDate);
case FirstDay of
DayOfWeek.Monday : FirstDaTe:= FirstDate.AddDays( 0);
DayOfWeek.Tuesday : FirstDate:= FirstDate.AddDays(-1);
DayOFWeek.Wednesday: FirstDate:= FirstDate.AddDays(-2);
DayOFWeek.Thursday : FirstDate:= FirstDate.AddDays(-3);
DayOfWeek.Friday : FirstDate:= FirstDate.AddDays(-4);
DayOfWeek.Saturday : FirstDate:= FirstDate.AddDays(-5);
DayOfWeek.Sunday : FirstDate:= FirstDate.AddDays(-6);
end;
result:= FirstDate;
end;
end;
danke raik