Hallo zusammen,ich habe heute früh nur die erste Mail lesen können, ohne etwas dazu schreiben zu können. Inzwischen hat sich ja schon herausgestellt, dass es wohl am Datumserkennungsmuster liegt, was sich noch nicht in der Dokumentation niedregeschlagen hat. Ich hatte ein entsprechendes Problem für andere Datumsfunktionen als Bug gemeldet, siehe
https://bugs.documentfoundation.org/show_bug.cgi?id=106957weil es ja kein Problem der deutschen Version, sondern ein grundsätzliches ist. Und eine Bug-Meldung ist dann die richtige Aktion, aber eben auf die Dokumentation bezogen. Die Dokumentation wurde auch ziemlich schnell korrigiert, ich denke, das lag auch daran, dass ich eine neue Formulierung vorschlug, das würde ich hier auch empfehlen. Die Leute, die das ändern, sind wahrscheinlich sehr beschäftigt, man sollte es ihnen so klar und einfach wie möglich machen. Wenn sie sich erst in das Thema reindenken und gar nach einer Formulierung suchen müssen, bleibt das erst mal liegen und geht dann vergessen.
Gruß Gerhard Am 17.11.2017 um 19:15 schrieb OoOHWHOoO:
Hallo Alex und Wolfgang,in der Hilfe zu "DateAdd" steht, dass die Variable "Datum" von Typ "Variant" sein kann, es ist also eine Datum-Integer-Zahl als auch eine Datum-Zeichenkette erlaubt. Aber Deine (Alex) Eingabe der Form 17.11.2017 ohne begrenzende " ist nicht erlaubt, denn diese Eingabe ist weder eine Zeichenkette noch eine gültige Zahl. Das nachfolgende Mini-Makro liefert sowohl für Datum-Integer-Zahl als auch Datum-Zeichenkette ein fehlerfreies Ergebnis:Sub example_dateadd Dim Date_1 as Variant Dim Date_2 as VariantDate_1 = "31.01.2004" ' Datumsformat entsprechend "Datumserkennungsmuster" in Abhängigkeit vom "Gebietsschema" angeben ! Date_2 = "31.01.2005" ' Datumsformat entsprechend "Datumserkennungsmuster" in Abhängigkeit vom "Gebietsschema" angeben !MsgBox DateAdd("m",1,Date_1) & " - " & DateAdd("m",1,Date_2)MsgBox DateAdd("m",1,DateValue(Date_1)) & " - " & DateAdd("m",1,DateValue(Date_2))End SubDas sehe ich im Prinzip ebenso wie Du (Wolfgang). Für "DateValue" ist die Hilfe-Erläuterung etwas ausführlicher und bestätigt, was Du auch geschrieben hast:"[...] Sie können das Gebietsschema, das in LibreOffice Basic zur Kontrolle der Formatierung von Zahlen, Daten und Währungen benutzt wird, im Menü unter Extras - Optionen... - Spracheinstellungen - Sprachen einstellen. In Basic Formatierungscodes wird immer der Dezimalpunkt (.) als Platzhalter für den Dezimaltrenner benutzt, der in Ihrem Gebietsschema definiert ist, und durch das entsprechende Zeichen ersetzt. Dies gilt entsprechend für das Gebietsschema für Datums-, Uhrzeit- und Währungsformate. Der Basic-Format-Code wird entsprechend Ihrer Gebietsschemaeinstellung ausgewertet und angezeigt. [...]"Über [Extras] -> [Optionen] -> [Spracheinstellungen] -> [Sprachen] kann man das "Gebietsschema" einstellen und LO setzt dann automatisch das dazugehörige "Datumserkennungsmuster":+ Gebietsschema: Englisch (USA) + Datumserkennungsmuster: M/D/Y;M/D + Date_1 = "1/31/2004" und Date_2 = "1/31/2005" + Gebietsschema: Englisch (Großbritannien) + Datumserkennungsmuster: D/M/Y;D/M;D-M + Date_1 = "31/1/2004" und Date_2 = "31/1/2005" + Gebietsschema: Afrikaans (Namibia) + Datumserkennungsmuster: Y/M/D;M/D + Date_1 = "2004/1/31" und Date_2 = "2005/1/31" + Gebietsschema: Bretonisch + Datumserkennungsmuster: D/M/Y;D/M;D.M.Y;D-M-Y + Date_1 = "31-01-2004" und Date_2 = "31-01-2005" + Gebietsschema: Deutsch (Deutschland) + Datumserkennungsmuster: D.M.Y;D.M. + Date_1 = "31.01.2004" und Date_2 = "31.01.2005"Man muss dann nur (beispielsweise) in dem obigen Min-Makro die Datum-Zeichenkette-Angaben für "Date_1" und "Date_2" entsprechend anpassen, dann gibt es keine Fehlfunktionen von "DateAdd" mehr.Von dieser Funktion abzuraten, so weit würde ich nicht gehen. Das Beispiel anpassen und/oder auf das "Datumserkennungsmuster" in den "Spracheinstellungen" hinweisen.Grüße Hans-Werner ;-)) ------ Originalnachricht ------ Von: "Wolfgang Jäth" <jawo.ml.hamster@arcor.de> An: users@de.libreoffice.org Gesendet: 17.11.2017 16:39:05 Betreff: Re: [de-users] Re: LO BASIC IDE - DateAdd - Beispiel fehlerhaftAm 17.11.2017 um 11:26 schrieb Alexander Thurgood:Hallo Hans-Werner, Ich habe auf einem LO (fr-FR) getestet, und die Hilfe darum ist diegleiche wie die in der deutschen Verfassung, also besser wäre doch, dassman ein Bug gegen die Online-Hilfe melden würde. Ich konnte mit LO5432 kein sensibles Ergebnis erstellen, wenn ich die doppelten Anführungszeichen stehen liess - ansonsten bekam ich nochweitere Fehlermeldungen, abhängig von der Wahl der Separator (Punkt oderStrich). Nach Entfernung der Anführungszeichen, bekam ich doch ein MsgBox mit Datum, trotzdem aber mit falschem Jahr, also "31/01/32767". Es ist da scheinbar was los. Ob das die Hilfe zu schulden ist, oder ein unterliegendes Problem mit der Funktion DateAdd(), weiss ich nicht.Wohl letzteres; 'DateAdd("m", 1, "4/5/6")' liefert das Datum '04.06.2006', sprich es geht wohl von einem (nicht unbedingt sehr üblichen) Format 'DD/MM/YYYY' aus, und nicht von dem zinmindest im amerikanischen Sprachraum üblichen Format 'MM/DD/YYYY'. Allerdings *gibt* es laut https://en.wikipedia.org/wiki/Date_format_by_country auch das Format 'DD/MM/YYYY' (z. B. in Algerien), insofern ist die verwendete Interpretation zwar unerwartet aber nicht grundsätzlich falsch. Der Grund dafür dürfte IMHO sein, dass DateAdd keine Möglichkeit erlaubt, ein Gebietsschema aus zu wählen, sondern fix auf das im BS eingestellte Gebietsschema und die dort verwendete Reihenfolge von Tag, Monat und Jahr zurückgreift, egal in welchem Format das Datum angegeben wird. Und für DE ist das gültige Datumsformat nun mal 'DD.MM.YYYY' und nicht 'MM/DD/YYYY'. Man sollte also nicht nur das Beispiel in der Hilfe korrigieren, sondern auch darauf hin weisen, dass bei Datumsangaben, die in einer Form übergeben werden, die nicht dem Gebietsschema entspricht, unerwartete Ergebnisse zu erwarten sind. M. a. W. ist von der Verwendung dieser Funktion wohl eher ab zu raten. Wolfgang -- -- Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.orgProbleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
-- Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert