AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datum zu KW Normierung

Ein Thema von ibp · begonnen am 19. Feb 2013 · letzter Beitrag vom 13. Jan 2014
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#11

AW: Datum zu KW Normierung

  Alt 19. Feb 2013, 17:57
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.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#12

AW: Datum zu KW Normierung

  Alt 19. Feb 2013, 18:02
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;
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#13

AW: Datum zu KW Normierung

  Alt 19. Feb 2013, 18:03
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.
genau umgekehrt. Es geht im Prinzip um Termine (Datum) die in einem Report der in KW aufgeteilt ist zugeordnet werden.

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.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#14

AW: Datum zu KW Normierung

  Alt 19. Feb 2013, 18:18
Dein Problem ist also, dass die Kombination aus Jahr und KW eine Woche nicht eindeutig kennzeichnet
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 YEARWEEK.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (19. Feb 2013 um 18:36 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#15

AW: Datum zu KW Normierung

  Alt 19. Feb 2013, 19:34
...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.
Nicht ganz
Zitat von Wiki:
Zählweise nach DIN 1355/ISO 8601

Die deutschsprachige Kalender-Industrie hält sich ausnahmslos an die internationale Norm ISO 8601 (1973), die als letzten Tag der Woche den Sonntag bestimmt, statt des Samstags/Sonnabends/Sabbats, wie es in der jüdisch-christlich-islamischen Tradition üblich ist.

Im Geltungsbereich der Normen des DIN Deutschen Instituts für Normung e. V. werden seit 1976 durch Normung folgende Regeln empfohlen:
Jeden Montag und nur montags beginnt eine neue Kalenderwoche.
Die erste Kalenderwoche ist diejenige, die mindestens vier Tage des neuen Jahres enthält.

Aus diesen Punkten ergeben sich folgende Eigenschaften:
Es gibt keine unvollständigen Kalenderwochen, ausnahmslos jede KW enthält genau sieben Tage.
Jedes Jahr hat entweder 52 oder 53 Kalenderwochen.
Ein Jahr hat genau dann 53 Kalenderwochen, wenn es mit einem Donnerstag beginnt oder endet:
Ein Normaljahr mit 53 Wochen beginnt und endet an einem Donnerstag.
Ein Schaltjahr mit 53 Wochen beginnt entweder an einem Mittwoch und endet somit mit Donnerstag oder beginnt an einem Donnerstag und endet an einem Freitag.
Der 4. Januar liegt immer in Kalenderwoche 1.
Der 29., 30. und 31. Dezember können schon zur ersten Kalenderwoche des Folgejahres gehören.
Der 1., 2. und 3. Januar können noch in der letzten Kalenderwoche des Vorjahres liegen.
Der Donnerstag ist ausschlaggebend, zu welchem Jahr die Woche gezählt wird. Liegt er im neuen Jahr, ist es die Kalenderwoche 1.
Und da das nun mal so ist und Du doch niemandem zumuten willst, plötzlich mit Ordnungszahlenwochenranks zu arbeiten, hältst Du dich doch lieber an die Norm und machst das so wie alle anderen, oder etwa nicht?
  Mit Zitat antworten Zitat
Photoner

Registriert seit: 6. Dez 2012
Ort: Nürnberg
103 Beiträge
 
Delphi 10.1 Berlin Starter
 
#16

AW: Datum zu KW Normierung

  Alt 13. Jan 2014, 14:01
Ich bin zwar etwas spät dran mit meiner Antwort, aber vielleicht hilft es ja jemandem der zufällig hierüber stolpert:

uses DateUtils;
Delphi-Quellcode:
function WeekOfTheYear(const AValue: TDateTime; var AYear: Word): Word;
var
  LDOW: Word;
begin
  DecodeDateWeek(AValue, AYear, Result, LDOW);
end;
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.
Chris
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 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