AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit MonthOf

Ein Thema von SvB · begonnen am 19. Okt 2012 · letzter Beitrag vom 25. Okt 2012
Antwort Antwort
SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Problem mit MonthOf

  Alt 19. Okt 2012, 20:39
Ich bin gerade etwas verwirrt. Ich benötige den Monat einer Woche. Um dies zu erreichen benutze ich MonthOf(EncodeDateWeek(2013, 1, 1)). Beispielhaft:
Delphi-Quellcode:
EncodeDateWeek(2013, 1, 1) // = 31.12.2012 - richtig
MonthOf(StrToDate('31.12.2012')) // = 12 - falsch
Mache ich jetzt einen Denkfehler oder rechnet Delphi falsch? Ich habe das mit XE und XE3 probiert und das Ergebnis ist das selbe.
Wenn ich mir den Kalender ansehe, dann ist der 31.12.2012 aber schon in der KW 1/2013, was meiner Meinung nach ja auch richtig ist.

Hat jemand eine Idee, wie ich das lösen kann?
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.306 Beiträge
 
Delphi 12 Athens
 
#2

AW: Problem mit MonthOf

  Alt 19. Okt 2012, 20:54
Was soll daran falsch sein?

vom 31.12.2012 ist der Monat nunmal die 12
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Problem mit MonthOf

  Alt 19. Okt 2012, 21:08
Die KW wird so berechnet, dass die KW zwischen zwei Jahren die mit KW 1 angesehen wird, in der mehr Tage der Woche zu finden sind. Da in der letzten Woche des Jahres 2012 nur noch ein Tag (31.12.) zu finden ist, ist er bereits KW 1. Sind vier Tage der Woche noch im letzten Jahr, ist der 01.01. meinetwegen KW 53.
  Mit Zitat antworten Zitat
SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: Problem mit MonthOf

  Alt 19. Okt 2012, 21:19
Ja, wenn man vor lauter Fehlersucherei dann ein Brett vorm Kopf hat und nicht weiter kommt.
Klar 12 = 12.

Tja wenn ich halt den Monat der ersten KW in 2013 heraus bekommen möchte und es kommt dann 12 heraus, steht man erst mal dumm da.

Ich denke das ich es wie folgt mache:
Delphi-Quellcode:
if berechneteKW = 1 then Monat = 1
if berechneteKW = 52 or 53 then Monat = 12
ansonsten Monat = MonthOf
damit sollte es passen.
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#5

AW: Problem mit MonthOf

  Alt 19. Okt 2012, 21:44
Nur mal so dahin gefragt, vielleicht verstehe ich nur deine Aufgabe nicht, aber warum berechnest du den Monat über die Kalenderwoche? Du wirst wahrscheinlich schon dein Gründe haben, aber abhängig von dem was du vorhast kann dein Code ungenau sein. Denn wenn die erste KW noch im letzten Jahr ist, dann ist das so. Wenn das aber unwichtig ist, dann bezeichne es nicht als KW, sondern Lfd. Woche im Jahr.

Letztendlich kannst du sicher ein, dass zumindest ein Teil der KW 1 im neuen Jahr ist, aber die erste Woche des Jahres kann auch KW 53 sein.
  Mit Zitat antworten Zitat
SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Problem mit MonthOf

  Alt 20. Okt 2012, 09:00
Hintergrund ist folgender: In einer einer Erfassungsmaske kann der Benutzer das Feld "Lieferwoche" eingeben. Alle Auswertungen die gemacht werden beziehen sich aber auf Monate. Deshalb speichere ich den Monat der Lieferwoche mit in die Tabelle, damit ich über SQL einfacher die Daten ziehen kann.
In meinem Beispiel der KW 1/2013 müsste demnach als Monat der Januar gespeichert werden. So wie ich das bisher berechnet habe (habe ja keine andere Möglichkeit) kommt aber Dezember raus und das gibt Probleme, denn die Auswertung gehört in den Januar.
Ich muss das ganze so abbilden wie das auf einem Kalender angezeigt wird. Wie ich im Code gesehen habe (hat ein anderer geschrieben) wird die KW 53 auch gar nicht berücksichtigt, da habe ich auch noch ein Problem. Das muss ich am Montag mit meinem neuen Programmier noch mal durchgehen, bzw. mit dem Kunden noch mal abklären.
Ich merke gerade dass ich das Problem nicht nur beim Jahreswechsel habe, das kann auch innerhalb vom Jahr passieren, denn ich beziehe mich immer auf den Anfang einer Woche.
Na ja, da gibt es noch einmal etwas Arbeit.

Aber trotzdem Danke für die Hilfe.
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:44 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 by Thomas Breitkreuz