![]() |
AW: Datum zu KW Normierung
Wenn ich es richtig verstehe willst den Benutzer als Selektionskriterium KW von-bis eingeben lassen und daraus den Datumsbereich errechnen? Dann gehört aber das Jahr dazum denn wie Du selbst gemerkt hast ist die KW alleine nicht eineindeutig.
|
AW: Datum zu KW Normierung
Wenn ich richtig verstehe, sollte das ungefähr das machen, was du möchtest:
Delphi-Quellcode:
function pseudoKW(date: TDateTime): integer;
begin result = weekOf(date); if (result > 51) and (monthOf(date) = 1) then result = 0 else if (result = 1) and (monthOf(date) = 12) then result = weekOf(incWeek(date, -1)) + 1; end; |
AW: Datum zu KW Normierung
Zitat:
Die Grenzen können vom Anwender gewählt werden und sind Start-Datum bis End-Datum. Start bis Ende sind maximal 1 Jahr. Alle Termine sollen nun den entsprechenden KW zugeordnet werden. Klassischer Fall Auswahl 1.1. - 31.12. aber es kann auch 5.5.2012 - 4.5.2013 ausgewählt werden oder aber auch eine kürzere Periode. |
AW: Datum zu KW Normierung
Dein Problem ist also, dass die Kombination aus Jahr und KW eine Woche nicht eindeutig kennzeichnet :idea:
Dann würde ich die KW so lassen wie sie sind und mir überlegen, wie du das Jahr, zu dem die Kalenderwoche gehört, ermittelst. In MySQL geht das anscheinend mit ![]() |
AW: Datum zu KW Normierung
Zitat:
Zitat:
|
AW: Datum zu KW Normierung
Ich bin zwar etwas spät dran mit meiner Antwort, aber vielleicht hilft es ja jemandem der zufällig hierüber stolpert:
Delphi-Quellcode:
uses DateUtils;
Delphi-Quellcode:
Liefert die KW nach ISO 8601 und das zugehörige Jahr. D.h. für den 30.12.2013 gibt die Funktion als Ergebnis die "1" zurück und der Variablen AYear wird die "2014" zugewiesen.
function WeekOfTheYear(const AValue: TDateTime; var AYear: Word): Word;
var LDOW: Word; begin DecodeDateWeek(AValue, AYear, Result, LDOW); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 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