Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Prism vereinfachen der folgenden Funktion (https://www.delphipraxis.net/53908-vereinfachen-der-folgenden-funktion.html)

kiar 25. Sep 2005 09:47


vereinfachen der folgenden Funktion
 
Hallo,

leider gibt es in .net keine Funktion welche die Kalenderwoche ausgibt, oder ich habe sie nicht gefunden :mrgreen:

Kann man nachfolgende Funktion noch vereinfachen?

Nein ich will nicht das aktuelle Datum übergeben, es geht mir nur um den Syntax.
Delphi-Quellcode:
function TWoche.Get_Week: Integer;
var Date
   ,FirstDate   : DateTime;
    DayCount
   ,Compensation : Integer;
begin
  Date:=DateTime.get_Now ;                      // aktuelle Datum
  FirstDate:= DateTime.Create(Date.Year, 1, 1); // der 01.01. des aktuellen Jahres
  case FirstDate.DayOfWeek of
       DayOfWeek.Sunday  : Compensation:= 0;
       DayOfWeek.Monday  : Compensation:= 6;
       DayOfWeek.Tuesday : Compensation:= 5;
       DayOfWeek.Wednesday: Compensation:= 4;
       DayOfWeek.Thursday : Compensation:= 3;
       DayOfWeek.Friday  : Compensation:= 2;
       DayOfWeek.Saturday : Compensation:= 1;
  end;
  DayCount:= Date.DayOfYear - Compensation;
  If DayCount mod 7 = 0 then
     Result:= DayCount div 7
  else
     Result:= DayCount div 7 + 1
end;
Danke raik

[edit=Christian Seehase]Code gemäss kairs Vorgaben geändert. Mfg, Christian Seehase[/edit]

mirage228 25. Sep 2005 10:54

Re: vereinfachen der folgenden Funktion
 
Hi,

mit CultureInfo und seiner Calendar Eigenschaft gehts.

Delphi-Quellcode:
var
  CUI: CultureInfo;
  Week: Integer;
begin
  CUI := CultureInfo.CreateSpecificCulture('de-DE');
  Week := CUI.Calendar.GetWeekOfYear(DateTime.get_Now,
    CUI.DateTimeFormat.CalendarWeekRule, CUI.DateTimeFormat.FirstDayOfWeek);
mfG
mirage228

kiar 25. Sep 2005 12:20

Re: vereinfachen der folgenden Funktion
 
danke mirage,

da sieht mann erstmal die Vielfalt, die das .Net Framework bietet.

raik


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr.

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