AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung FMX - DX10 - Falsche Wochennummer im TCalendar
Thema durchsuchen
Ansicht
Themen-Optionen

FMX - DX10 - Falsche Wochennummer im TCalendar

Ein Thema von Harry Stahl · begonnen am 6. Jan 2016 · letzter Beitrag vom 6. Jan 2016
Antwort Antwort
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.546 Beiträge
 
Delphi 12 Athens
 
#1

FMX - DX10 - Falsche Wochennummer im TCalendar

  Alt 6. Jan 2016, 00:48
Wie ich leider gerade feststellen musste, zeigt die FMX-TCalendar-Komponente die falsche Wochennummer an (für diese Woche, den 6. Januar schon die 2. Woche, ist aber tatsächlich die erste, das Jahr 2015 hatte 53 Wochen).

Siehe Meldung bei QC hier: https://quality.embarcadero.com/browse/RSP-13358

Nur gut, dass ich die MAC-Version meines Termin- und Aufgabenprogramms noch unter Beta-Status veröffentlicht habe, mit falschen Wochenzahlen ist das echt mies

Ich hatte gerade mal versucht, die Quelle des Übels auszumachen, damit ich das evtl. selber mit einem Fix beheben kann.

Irgendwie komme ich aber nicht an die Stelle ran. Die FMX-Calendar-Komponente wird vermutlich mit einem Style gezeichnet, dazu werden wohl Botschaften verschickt, ich weiß aber nicht wohin und welche Stelle ich quasi abhören müsste, um an die konkrete Zeichenroutine zu kommen. Ein Debugg-Versuch (z.B. ab OnPainting) führte leider nicht zum Ziel.

Hat da evtl. Jemand eine Idee?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: FMX - DX10 - Falsche Wochennummer im TCalendar

  Alt 6. Jan 2016, 01:53
unit FMX.Calendar.Style; Zeile 584f

Man beachte den Kommentar in Zeile 583:
Delphi-Quellcode:
  // WeekOfTheYear doesn't consider a current Locale. So for 01.01.2017 returns 52.
  if MonthOf(FDateTime) = MonthJanuary then
    FirstWeekOfMonth := 1
  else
    FirstWeekOfMonth := WeekOfTheYear(RecodeDay(FDateTime, 1));
Da hat also ein Programmierer von Emba einen (angeblichen) Fehler in der Funktion WeekOfTheYear festgestellt. Aber anstatt diesen Fehler einmal intern an das System.DateUtils -Team zu melden (ja, dafür hätte er wohl 4 Wochen Kaffee für alle holen müssen) denkt er sich eine ganz tolle Methode aus:

Jedes Jahr startet mit der Woche 1

Aber seine wir froh, dass er nicht einfach die WeekOfTheYear -Routine "gefixt" hat

@Harry

Melde doch mal diesen WeekOfTheYear "Fehler" und verweise stumpf und vor allem erbost auf den Kommentar. Die stellen selber Fehler fest und korrigieren die nicht. Mal sehen was passiert ... ob wir das Geschrei bis hier hören können?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 6. Jan 2016 um 02:06 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
978 Beiträge
 
Delphi 6 Professional
 
#3

AW: FMX - DX10 - Falsche Wochennummer im TCalendar

  Alt 6. Jan 2016, 10:39
Hmm..

Stellt sich die Frage, was liefert WeekOfYear für den 1.1.2016?

Muss eigentlich KW 53 sein, so wie (richtig) 1.1.2017 noch zur KW 52 gehört

Blubber Blubber (noch zu Früh)

"WeekOfTheYear"

Und bei Delphi 6 gibt es die 'angebliche' Fehlerbehandlung noch nicht

Geändert von HolgerX ( 6. Jan 2016 um 10:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.213 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: FMX - DX10 - Falsche Wochennummer im TCalendar

  Alt 6. Jan 2016, 11:41
Und bei Delphi 6 gibt es die 'angebliche' Fehlerbehandlung noch nicht
Es ist ja ein FXM-Problem. in der VCL passt es ja.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: FMX - DX10 - Falsche Wochennummer im TCalendar

  Alt 6. Jan 2016, 13:17
Entschuldigt, aber ich glaube ihr sucht falsch.
Zitat:
Das Jahr umfasst mindestens 52 Wochen, die v. a. im Geschäftsleben als Kalenderwochen (KW) durchnummeriert werden, wobei es bei den Wochen-Nummerierungen verschiedene Definitionen gibt. Je nach angewandter Regel kann die erste Woche des Jahres unterschiedlich sein:
ISO (DIN/ÖNORM/SN): die Woche, die den ersten Donnerstag des Jahres enthält (ISO 8601, früher DIN 1355-1). Äquivalent sind folgende Definitionen (da ISO 8601 den Montag als ersten Tag der Woche definiert): die Woche, die den 4. Januar enthält
die Woche, in der der 1. Januar ein Montag, Dienstag, Mittwoch oder Donnerstag ist, sonst die darauf folgende Woche
die erste Woche, in die mindestens vier Tage des neuen Jahres fallen bzw. die erste Woche, in die mehr Tage auf das neue Jahr fallen als auf das alte Jahr

USA: jene, in die der 1. Januar fällt
Selten: die erste vollständige Woche des Jahres
https://de.wikipedia.org/wiki/Woche

Je nach Sichtweise ist das also nicht unbedingt falsch.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: FMX - DX10 - Falsche Wochennummer im TCalendar

  Alt 6. Jan 2016, 13:20
Nein, wir suchen nicht falsch, denn ab Februar wird die Wochennummer wieder so angezeigt wie die VCL Komponente das macht.

Die FMX-Variante ist grundsätzlich falsch implementiert.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 08:26 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