Fehlerhafte Funktion DATUM

Bugreports und Updatewünsche an die Firma contronics
Keine allgemeinen Fragen!

Moderator: Co-Administratoren

Antworten
SpiRu
Beiträge: 74
Registriert: 18.09.2012, 23:05
Wohnort: Deutschland.Freiburg

Fehlerhafte Funktion DATUM

Beitrag von SpiRu » 19.09.2012, 00:00

Laut Hilfe soll diese Funktion das aktuelle Datum im Format TT.MM.JJ zurückgeben.

Jedoch erhalte ich (heute am 2012-09-18) mit

Code: Alles auswählen

Z:= DATUM
als Ergebnis im Debugger
Z: 2012-018 [Zeichen],
wenn ich unter Windows als System-Datumsformat JJJJ-MM-TT eingestellt habe.

Die Funktion DATUM gibt das Datum also mitnichten immer im behaupteten Format aus. Was aber nicht so schlimm wäre, wenn es denn wenigsten im (eigentlich einzig vernünftigen, weil normal sortierfähigen) Format JJJJ-MM-TT ausgegeben würde. Aber das Format JJJJ-TTT ist ja wohl völliger Schwachsinn!
FHZ 1000 PC, Homeputer Studio V2.0 Rel. 120301
FHT80b-Raumregler, Windows XP (SP3)

Bugs? - Das sind keine Bugs! Das sind Features!

mikewolf99
Beiträge: 1322
Registriert: 13.08.2008, 20:57
Wohnort: Österreich nähe Wien
Hat sich bedankt: 7 Mal
Danksagung erhalten: 1 Mal

Re: Fehlerhafte Funktion DATUM

Beitrag von mikewolf99 » 19.09.2012, 20:03

Hallo SpiRu,

Probiers mal so :

Code: Alles auswählen

Date:=DATUM
Date ist ein Objekt vom Typ Zeichen
Anzahl Zeilen 0 Zeichen je Zeile 0
Ausführungsintervall bei Tageswechsel

mfg
mikewolf99
CCU2 mit Cuxd und HP CLX ,3 x FHZ2000,2 Funkgateway (eckig),und 2 Funkgateway (rund),RS LanGate
ca 590 Komponenten gemischt HM und FS20 90/10)`CCU auf Cubie LXCCU,CCU auf RPi3 Pivccu,Iobroker auf HPgen8,
Tinker,orangepi,Odroid .....,Sonoffs,Xiaomi und ne Menge esp8266

SpiRu
Beiträge: 74
Registriert: 18.09.2012, 23:05
Wohnort: Deutschland.Freiburg

Re: Fehlerhafte Funktion DATUM

Beitrag von SpiRu » 20.09.2012, 15:23

Ich habe das Problem mit der Funktion DATUM mittlerweile selbst mal genauer untersucht und folgendes festgestellt:
  • :-( Die Beschreibung in der Hilfe ist falsch (was den Typ von DATUM betriftt)
    :-( Die Beschreibung in der Hilfe ist falsch (was das Format betrifft)
    :-( Die Umwandlung in eines Wertes vom Typ [Datum] in eine [Zeichen]-Folge ist bedingt fehlerhaft

Die Funktion DATUM liefert das aktuelle Datum im internen Format. Das ist die Zeit in Tagen seit 1899-12-30 00:00:00. Wobei eine Stunde einem 1/24 Tag entspricht, eine Minute einem 1/60 davon etc. (Wie z.B. in Excel, wo allerdings die Bezugsbasis wohl eine andere ist.) Das externe Darstellungsformat als [Zeichen]-Folge, wie in der Hilfe unter DATUM absolut irreführend erwähnt, hat damit erst mal überhaupt gar nichts zu tun! Und ist im Übrigen vom eingestellten Windows System-Datumsformat abhängig.

Werte vom Typ [Datum], [Zeit] oder [Uhr] unterscheiden sich nicht in ihrer internen Darstellung (und sind daher auch zuweisungskompatibel).

Folgende lokalen Variablen seien in einem Objekt deklariert:
  • d [Datum]
    z [Zeit]
    u [Uhr]
    s [Zeichen]
Im Debugger erkennt man (in einem Beispiel) die unterschiedlichen Typen:
  • d: 2012-09-21 14:31:01 [Datum] (Zeit)
    z: 2012-09-21 14:31:01 [Zeit] (Zeit)
    u: 2012-09-21 14:31:01 [Uhr] (Zeit)
Wobei die für manchen ungewohnte (aber eigentlich einzig vernünftige) JJJJ-MM-TT HH:mm:ss Darstellung daran liegt, dass bei mir das System-Datumsformat in den Regions- und Sprachoptionen unter Windows so eingestellt ist.

Entscheidend ist der passende Variablentyp bei der Umwandlung in eine [Zeichen]folge:
  • s:= d (ergibt 2012-021)
    s:= z (ergibt 2012-09-21 14:31:01)
    s:= u (ergibt 14:31:01)
Bei eingestelltem System-Datumsformat TT.MM.JJ liefert die Zuweisung s:= d wohl das erwartete Ergebnis. Habe ich aber nicht nachgeprüft. Vermutlich ist die bei der internen Umwandlung benutzte Hilfs-Zeichenvariable nur 8 Zeichen lang, jedes längere System-Datumsformat liefert dann - wie hier - nur Schrott!


Appell an den Hersteller
  • 1. Die Hilfe bezüglich DATUM müsste dringendst berichtigt werden!
    2. Bei allen Punkten zu Zeitformaten müsste darauf hingewiesen werden, dass die Darstellung vom Windows System-Datumsformat abhängt!
    3. Die Unterschiede zwischen den Typen [Datum], [Zeit] oder [Uhr] müssten irgendwo erklärt werden. Insbesondere Anfänger bzw. Nicht-Programmierer blicken's sonst nicht, wozu man welchen Typ verwendet!
    4. Der "Sextaner"-Fehler in der Datumskonvertierung müsste beseitigt werden.

btw:
  • warum funktioniert
    hier eigentlich
    die Formatierung mit List= nicht?
Zuletzt geändert von SpiRu am 28.09.2012, 13:26, insgesamt 6-mal geändert.
FHZ 1000 PC, Homeputer Studio V2.0 Rel. 120301
FHT80b-Raumregler, Windows XP (SP3)

Bugs? - Das sind keine Bugs! Das sind Features!

SpiRu
Beiträge: 74
Registriert: 18.09.2012, 23:05
Wohnort: Deutschland.Freiburg

Re: Fehlerhafte Funktion DATUM

Beitrag von SpiRu » 20.09.2012, 15:50

mikewolf99 hat geschrieben:Probiers mal so :

Code: Alles auswählen

Date:=DATUM
Danke für die Mühe. Aber ich fände es gut, wenn hier alle ihre Tipps erst mal selbst ausprobieren, bevor sie das Forum mit unbrauchbaren Tipps verseuchen!

Warum's nicht geht, siehe meine eigene Antwort auf den ursprünglichen Beitrag.
FHZ 1000 PC, Homeputer Studio V2.0 Rel. 120301
FHT80b-Raumregler, Windows XP (SP3)

Bugs? - Das sind keine Bugs! Das sind Features!

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: Fehlerhafte Funktion DATUM

Beitrag von Herbert_Testmann » 20.09.2012, 18:24

SpiRu hat geschrieben:
mikewolf99 hat geschrieben:Probiers mal so :

Code: Alles auswählen

Date:=DATUM
Danke für die Mühe. Aber ich fände es gut, wenn hier alle ihre Tipps erst mal selbst ausprobieren, bevor sie das Forum mit unbrauchbaren Tipps verseuchen!

Warum's nicht geht, siehe meine eigene Antwort auf den ursprünglichen Beitrag.
Evtl. hat mikewolf ja nur nicht beachtet, dass Du die Version für FHZ hast. Ich hatte auch schon eine längere Antwort geschrieben und dann wieder gelöscht, denn in dem von uns verwendeten StudioCL für Homematic funktioniert "Datum" und die Übergabe in eine Zeichenkette.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: Fehlerhafte Funktion DATUM

Beitrag von Herbert_Testmann » 20.09.2012, 18:37

SpiRu hat geschrieben: Appell an den Hersteller
  • 1. Die Hilfe bezüglich DATUM müsste dringendst berichtigt werden!
    2. Bei allen Punkten zu Zeitformaten müsste darauf hingewiesen werden, dass die Darstellung vom Windows System-Datumsformat abhängt!
    3. Die Unterschiede zwischen den Typen [Datum], [Zeit] oder [Uhr] müssten irgendwo erklärt werden. Insbesondere Anfänger bzw. Nicht-Programmierer blicken's sonst nicht, wozu man welchen Typ verwendet!
    4. Der "Sextaner"-Fehler in der Datumskonvertierung müsste beseitigt werden.
Wenn die Analyse so richtig ist, kann das für den Programmierer sicherlich hilfreich sein.
Es ist aber nicht möglich, _alle_ denkbaren Konfigurationen eines Anwendersystems zu testen, so dass solche Fehler, die nur unter bestimmten selten auftretenden Konfigurationen auftreten, immer wieder mal vorkommen.
Das könnte man in sachlicher Form dem Hersteller mitteilen.
Oder man verkauft seinen Kram bald wieder mit den entsprechenden Kommentaren zu schlechtem Support und unfreundlichen Telefongesprächen. Gab es hier ja auch schon.
Denn "der Ton macht die Musik".
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

Antworten

Zurück zu „homeputer Studio / Standard: Bugs & Updatewünsche“