![]() |
Datum zu KW Normierung
Hallo, stehe gerade ziemlich auf dem Schlauch, das verflixte Jahr 2012 macht mir zu schaffen. Hintergrund das Jahr hat 2 x die KW 52 und 2 x KW 1
Ich suche eine mathematische Berechnung anhand der ich mittels eines Datums aus einem Bereich die Nummer 1...54 zuordnen kann. Der Bereich kann von 1 Woche bis max. 1 Jahr betragen. also nehmen wir an es ist der Bereich 5.2.2013 bis 29.3.2013 gewählt worden... 5.2. ist die KW 6 diese hat dann die Zuordnung 1 ... 29.3. ist die KW 13 hat dann die Zuordnung 8 So weit so gut. Wenn ich nun das Jahr 2012 betrachte und den Zeitraum 1.1.2012-31.12.2012 wähle: 1.1.2012 KW 52 > 1 ... 31.12.2012 KW 1 > 54 hat da jemand eine Idee? Meine bisherige war eine Liste zu generieren anhand der die Zuordnung identifiziert wurde und zwar so... liste[1..54] := YearOf(Date)*10000 + MonthOf(Date)*100 + WeekOf(Date) das schlägt aber immer dann fehl wenn KW in verschiedenen Monaten vorhanden sind. |
AW: Datum zu KW Normierung
function WeekOf(const AValue: TDateTime): Word; {ISO 8601}
Sehe gerade hast Du ja verwendet. Verstehe aber dein Problem jetzt nicht wirklich. |
AW: Datum zu KW Normierung
Zitat:
|
AW: Datum zu KW Normierung
Zitat:
|
AW: Datum zu KW Normierung
Zitat:
Also: 4.11.2012 ergibt 20121144 dem Wert ist der Rank 45 zugeordnet Aber 29.10.2012 ergibt 20121044 da er ebenfalls in der 44 KW ist wird aber hier nicht gefunden, weil 20121144 in meiner Tabelle festgelegt wurde... :wall: |
AW: Datum zu KW Normierung
Hallo,
Aus meiner Sicht liefert weekof die gewünschte KW und die Liste ist nicht notwendig. Du sprichts auch von einem Bereich. Kannst Du in deiner Problembeschreibung einen Schritt zurück machen und sagen, was Du lösen möchtes. |
AW: Datum zu KW Normierung
Zitat:
mit weekof(25.12.2012) erhalte ich 52 damit bekomme ich keine genaue Zuordnung hin, da es auch nicht hinreichend ist, den Monat als Erkennungsmerkmal mit dazu zu nehmen. Im Endeffekt brauche ich eine Funktion die mir einen bestimmten Rank zurückgibt anhand eines Datums (Startdatum <= Datum <= Enddatum) der beginnt mit 1 beim Startdatum und geht bis maximal 54. |
AW: Datum zu KW Normierung
Als "Zusatzschlüssel" musst Du das Jahr verwenden, in dem der größte Teil der ermittelte Woche liegt. Die Woche des 1. Jan 2012 war ja noch die KW 2011/52 da dieser Tag ein Sonntag war und bei einem definierten Wochenbeginn am Montag lagen eben 6 von 7 Tagen im Jahr 2011.
|
AW: Datum zu KW Normierung
Zitat:
Am liebsten wäre mir eine mathematische eindeutige Zuordnung ohne viel wenn und aber... |
AW: Datum zu KW Normierung
Das mit dem Rank ist mir etwas undurchsichtig.
Irgendwie scheint es je eben nicht um die x.KW des Jahres y zu gehen. Zitat:
Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 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