Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Prism Verschiedene CulturInfo's (https://www.delphipraxis.net/54618-verschiedene-culturinfos.html)

kiar 7. Okt 2005 21:26


Verschiedene CulturInfo's
 
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 :mrgreen:

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz