Hallo,
in Calc kann man aus jeder Zahl eine Ziffer nachen, in dem man der Zahl ein Apostroph voransetzt.
Mit einer Ziffer (einem String) kann man nicht rechnen.
Das Datum und die Uhrzeit sind aber intern Dezimalzahlen, sonst könnte Calc keine Berechnungen durchführen.
Dabei gilt folgendes:
- Stellen vor dem Komma sind Daten (Datum)
- Stellen nach dem Komma betrifft die Uhrzeit (Stunden, Minuten und Sekunden)
Die Basis für die Berechnung dieser Daten ist das voreingestellte Basisdatum mit der Uhrzeit 00:00:00
Siehe:
Menü Extras → Einstellugen → OpenOffice Calc
→ Datum = 30.12.1899
Dies ist der Tag 0 und die Uhrzeit 00:00:00
Zur Analyse der Zeiten empfiehlt es sich das Zahlenformat der Zelle auf 15-Nachkommastellen einzustellen.
Tag 0 + 1 Sekunde = 0,000011574074074
1 Sekunde = 1/24/60/60
1 Minutee= 1/24/60
1 Stunde = 1/24
Bei Uhrzeit 23:59:59 + 1 Sekunde erfolgt der Sprung auf den nächsten Tag und die Uhr wird auf 00:00:00 zurückgesetzt:
Dies ist der Tag 1 und die Uhrzeit 00:00:00 = 1,0
Daraus folgt für das heutige Datum bei 00:00:00 Uhr:
44950,000000000000000
Somit ist der Heute der 44.950-zigste Tag nach dem Basisdatum.
Im Makro muss man nun einen Datumswert vom Datentyp „Double“ errechnen und diesen Wert in eine Zelle schreiben.
Damit aber daraus ein lesbares Datum wird, muss zusätzlich der Zahlformatcode gesetzt werden.
Die Umwandlung von einer Dezimalzahl für den heutigen Tag nimmt Calc automatisch vor, wenn der richtige Zahlformatcode (DD.MM.JJJJ) gesetzt wurde.
So wird dann aus:
44950,000000000000000
das Stringformat
24.01.2023
oder auch:
24.01.2023 00:00:00
Beispiele für den Befehl „Numberformat“
https://www.dannenhoefer.de/faqstarbasi ... dardformat
Code: Alles auswählen
Sub Datum()
Dim oSel As Object
oSel = thisComponent.CurrentSelection
oSel.NumberFormat=36 ' ZellformatCode für DD.MM.YYYY
osel.Value=Now()
End Sub