Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kalenderwoche Frankreich / Deutschland? (https://www.delphipraxis.net/119575-kalenderwoche-frankreich-deutschland.html)

PASST 28. Aug 2008 14:45


Kalenderwoche Frankreich / Deutschland?
 
Hallo allerseits,

wir haben einen Kunden in Frankreich, der die Kalenderwoche immer samstag beginnen lässt. Ist das so in Frankreich normal oder hat er das individuell für sich so gewählt?

Wie kann ich das mit der Kalenderwoche WeekOfYear Funktion von Delphi lösen? Oder ist diese auch nicht Standard nach DIN?

gruß
Peter

HeikoAdams 28. Aug 2008 15:43

Re: Kalenderwoche Frankreich / Deutschland?
 
Zitat aus der Delphi-Hilfe:
Zitat:

WeekOfTheYear verwendet die Wochendefinition des ISO-Standards 8601. Demzufolge beginnt eine Woche am Montag und endet mit dem Sonntag.
Damit gibt es nur zwei Möglichkeiten:
  1. Dein Kunde lässt seine Kalenderwochen am Montag beginnen
  2. Du ziehst von dem Ergebnis der Routine basierend auf dem aktuellen Wochentag ggf. 1 ab
Ich persönlich würde Option 1 favorisieren

Sir Rufo 28. Aug 2008 16:22

Re: Kalenderwoche Frankreich / Deutschland?
 
Zitat:

Zitat von HeikoAdams
Zitat aus der Delphi-Hilfe:
Zitat:

WeekOfTheYear verwendet die Wochendefinition des ISO-Standards 8601. Demzufolge beginnt eine Woche am Montag und endet mit dem Sonntag.
Damit gibt es nur zwei Möglichkeiten:
  1. Dein Kunde lässt seine Kalenderwochen am Montag beginnen
  2. Du ziehst von dem Ergebnis der Routine basierend auf dem aktuellen Wochentag ggf. 1 ab
Ich persönlich würde Option 1 favorisieren

Also ich würde ein Routine programmieren, wo man den Starttag selber festlegen kann

Delphi-Quellcode:
function WeekOfYear( const ADate : TDate; const StartDayOfWeek : integer = 0 ) : integer;
Dann ist es egal und jeder kann es sich machen wie er will ... immer im Sinne des Kunden,
und gerade hier glaube ich, dass die Diskussion mit dem Kunden länger dauern würde, als den Code zu schreiben :mrgreen:

cu

Oliver

PASST 29. Aug 2008 13:54

Re: Kalenderwoche Frankreich / Deutschland?
 
Es handelt sich nicht um einen Kunden, für den ich ein Programm schreibe, sondern ich sitze hier als Lieferant und ich schreibe eine Schnittstelle, um unsere Daten in sein Format zum Etikettieren zu konvertieren.

Die Frage ist allerdings immer noch wie der Kunde seine Kalenderwoche genau definiert. Ich weiß:
1) Eine Woche beginnt mit einem Samstag.
2) Ein Jahr hat genau 52 Kalenderwochen.
3) Somit kann die Woche 1 auch schon in den letzten Tagen des Dezembers des Vorjahres beginnen.

Wenn ich vom ISO-Standards 8601 ausgehe, ist die Woche 1, in die mindestens vier Tage des neuen Jahres fallen.
Kennt jemand den Algorithmus?

gruß
Peter

Sir Rufo 29. Aug 2008 14:51

Re: Kalenderwoche Frankreich / Deutschland?
 
Hier einmal die Funktion WeekOfYear:
Delphi-Quellcode:
 function WeekOfYear(D : TDateTime) : Byte;
  var
    aDate       : Integer;
    MinDate     : tDateTime;
    MaxDate     : tDateTime;
    Day, Month, Year : Word;
    FirstDate   : Integer;
  begin
    aDate := Trunc(D);
    MinDate := EncodeDate(1900, 1, 1);
    MaxDate := EncodeDate(3999, 12, 31);
    if (aDate < MinDate) or (aDate > MaxDate) then begin
      Result := 0;
      exit;
    end;

    aDate := aDate + 3 - ((5 + DayOfWeek(aDate)) MOD 7);
    DecodeDate(aDate, Year, Month, Day);
    FirstDate := Trunc(EncodeDate(Year, 1, 1));

    Result := 1 + (aDate - FirstDate) DIV 7;
  end;
Jetzt würde ich zum übergebenen Datum einfach noch 2 Tage dazuzählen (wir tun also so, als ob der Samstag ein Monatg ist) und dann die resultierende Kalenderwoche nehmen.

cu

Oliver

PASST 29. Aug 2008 15:50

Re: Kalenderwoche Frankreich / Deutschland?
 
Vielen Dank, Sir Rufo.

Ich habe es inzwischen auf diese Weise gelöst.

Lyncht mich nicht, da ich das eigentlich für Excel suche, habe ich es mir entsprechend umgebaut :twisted:

grenzgaenger 29. Aug 2008 16:50

Re: Kalenderwoche Frankreich / Deutschland?
 
wenn du keinen ärger haben willst, würd ich mich mal mit dem kunden zusammensetzen und versuchen das zu definieren. zur bestimmung der kalenderwoche, gibt es etliche varianten, fängt schon an, mit der definition der ersten woche (eimal welche mind. 4 tage hat, dann mind. 5, dann erste volle woche, etc.), dann die unterschiedlichen beginndaten, etc. ...

wie so schön heisst DIN , das ist die Deutsche ... definition...

PASST 1. Sep 2008 08:03

Re: Kalenderwoche Frankreich / Deutschland?
 
Das stimmt schon. Sollte das Geschäftsverhältnis erweitert werden, muss es perfekt gestaltet werden.

Billa 1. Sep 2008 08:41

Re: Kalenderwoche Frankreich / Deutschland?
 
... und was ist mit der 53.Woche? Die kann es bei diesen Voraussetzungen ja durchaus geben ...
Nee, nee, da muß mit dem Kunden dringend gesprochen werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 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