 |
| |
|
|
 |
Autor |
Nachricht |
 |
| |
| PASST |
#1| Verfasst am: 28.08.2008, 15:45 Titel: Kalenderwoche Frankreich / Deutschland? |
 |
 |
 |
|
Mitglied Alter: 38 Status: offline Beiträge: 296 angemeldet: 30.03.2005 Wohnort: Krefeld Delphi 7 Enterprise

|
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 |
#2| Verfasst am: 28.08.2008, 16:43 Titel: Re: Kalenderwoche Frankreich / Deutschland? |
 |
 |
 |
|
Mitglied Alter: 27 Status: offline Beiträge: 285 angemeldet: 12.07.2004 Wohnort: Coburg Turbo Delphi für Win32

|
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:
- Dein Kunde lässt seine Kalenderwochen am Montag beginnen
- Du ziehst von dem Ergebnis der Routine basierend auf dem aktuellen Wochentag ggf. 1 ab
Ich persönlich würde Option 1 favorisieren |
 | Helmut Schmidt hat folgendes geschrieben: | | Ich habe in meinem Leben viele Menschen beleidigt - die wenigsten davon aus Versehen (Interview mit Sandra Maischberger) |
Zuletzt bearbeitet von HeikoAdams am 28.08.2008, 16:46, insgesamt 1-mal bearbeitet. |
 |
|
|
|
| |
| Sir Rufo |
#3| Verfasst am: 28.08.2008, 17:22 Titel: Re: Kalenderwoche Frankreich / Deutschland? |
 |
 |
 |
|
Mitglied Alter: 41 Status: offline Beiträge: 504 angemeldet: 05.01.2005 Wohnort: Stadthagen Delphi 2007 Professional

|
| HeikoAdams hat folgendes geschrieben: | 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:
- Dein Kunde lässt seine Kalenderwochen am Montag beginnen
- 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
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
cu
Oliver |
 Kaum macht man's richtig - schon funktioniert's |
 |
|
|
|
| |
| PASST |
#4| Verfasst am: 29.08.2008, 14:54 Titel: Re: Kalenderwoche Frankreich / Deutschland? |
 |
 |
 |
|
Mitglied Alter: 38 Status: offline Beiträge: 296 angemeldet: 30.03.2005 Wohnort: Krefeld Delphi 7 Enterprise

|
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 |
#5| Verfasst am: 29.08.2008, 15:51 Titel: Re: Kalenderwoche Frankreich / Deutschland? |
 |
 |
 |
|
Mitglied Alter: 41 Status: offline Beiträge: 504 angemeldet: 05.01.2005 Wohnort: Stadthagen Delphi 2007 Professional

|
Hier einmal die Funktion WeekOfYear:
Delphi-Quellcode: | zusammenfalten | markieren | 1 · · · 5 · · · · 10 · · · · 15 · · · · 20 · 22
| 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 |
 Kaum macht man's richtig - schon funktioniert's |
 |
|
|
|
| |
| PASST |
#6| Verfasst am: 29.08.2008, 16:50 Titel: Re: Kalenderwoche Frankreich / Deutschland? |
 |
 |
 |
|
Mitglied Alter: 38 Status: offline Beiträge: 296 angemeldet: 30.03.2005 Wohnort: Krefeld Delphi 7 Enterprise

|
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 |
Zuletzt bearbeitet von PASST am 29.08.2008, 16:51, insgesamt 1-mal bearbeitet. |
 |
|
|
|
| |
| grenzgaenger |
#7| Verfasst am: 29.08.2008, 17:50 Titel: Re: Kalenderwoche Frankreich / Deutschland? |
 |
 |
 |
|
ehem. Benutzer

|
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... |
Zuletzt bearbeitet am 29.08.2008, 17:50, insgesamt 1-mal bearbeitet. |
 |
|
|
|
| |
| PASST |
#8| Verfasst am: 01.09.2008, 09:03 Titel: Re: Kalenderwoche Frankreich / Deutschland? |
 |
 |
 |
|
Mitglied Alter: 38 Status: offline Beiträge: 296 angemeldet: 30.03.2005 Wohnort: Krefeld Delphi 7 Enterprise

|
Das stimmt schon. Sollte das Geschäftsverhältnis erweitert werden, muss es perfekt gestaltet werden. |
|
 |
|
|
|
| |
| Billa |
#9| Verfasst am: 01.09.2008, 09:41 Titel: Re: Kalenderwoche Frankreich / Deutschland? |
 |
 |
 |
|
Mitglied Alter: 48 Status: offline Beiträge: 153 angemeldet: 11.08.2003

|
... 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. |
 Gruß Billa
Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind.... |
 |
|
|
|
 |
|
 |
| |
|
|
| |
 
|
|
| |
|
Du darfst keine Beiträge in dieses Forum schreiben. Du darfst auf Beiträge in diesem Forum nicht antworten. Du darfst Deine Beiträge in diesem Forum nicht bearbeiten. Du darfst Deine Beiträge in diesem Forum nicht löschen. Du darfst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten. Du kannst Dateien in diesem Forum nicht herunterladen.
|
|
 |