Hallo Boris,
eigentlich ist sowohl die Zeit wie auch das Datum eine spezielle
Speicherart welche zumeist als uInt litleendian im System hinterlegt wird.
Als "TIME" gilt unter 32Bit: Auflösung in Millisekunden
T# -596h31m23s648ms...59h31m23s647ms
Dieses Format scheint auch in LibOf genutzt zu werden; ob das jedoch
wirklich ms genau ist weiss nehme ich an... aber das müssten dann schon
die Programmierer beantworten; jedenfalls ist in Calc eine solche mit
Formatierung MM:MM:SS,ms verfügbar...
Als DATE_AND_TIME unter 32Bit gilt: Auflösung Sekunden
Dabei gibt es eine Fixpunkt von welchem aus der Nullpunkt definiert ist.
Fixpunkt 1.1.1970 00:00:00
DT# 2106-02-07-06:28:15
-(ps. hier ist zu beachten, dass diverse Fixpunkte in Anwendung sind.
- über viele Jahre war das 1.1.1900.00:00:00
- unter 64Bit ist das jedoch kein Thema mehr, da ein Überlauf bei
- unserer Lebensdauer nicht mehr zu befürchten ist)
Nach DIN EN 28601 galt im deutschen Sprachraum JJJJ-MM-TT
Diese wurde jedoch mit DIN 5008 (2001) zugunsten JJJJ.MM.TT (wie in
LibOf) wieder fallen gelassen!
Diese Numerische Darstellung ermöglicht es, die Rechenoperatoren direkt
auf Zeitformate anzuwenden, jedoch müssen diese via Interpretation
ausgegeben werden.
Das ist der Grund, warum diese Zeitformate nur via Umrechnung zu deuten
sind und nicht einfach so in einer Tabelle eingetragen werden können!
Um nun in Calk rein numerische Werte eingeben zu können gibt es eine
ganz einfache Lösung:
Dazu nehmen wir mal zwei Spalten mit vier Zeilen
1. Spalte A für die rein numerischen Eingaben:
Zeile 1 Stunden => Dezimal Standard
Zeile 2 Minuten => Dezimal Standard
Zeile 3 Sekunden => Dezimal Standard
2. Spalte B Ausgabe im Zeitformat
Zeile 1 =ZEIT(A1;0;0) => Format Zeit
Zeile 2 =ZEIT(0;A2;0) => Format Zeit
Zeile 3 =ZEIT(0;0;A3) => Format Zeit
3. Spalte TIME-Ausgabe
Zeile 4 =B1+B2+B3 => Format Zeit
Diese Funktion kann auf alle Datentypen Zeit oder Datum angewandt werden
und Calc gibt so immer die interpretierte Zeit/Datum Form aus!
schönen Tag und gutes Neues Jahr
Marino
Boris Kirkorowicz schrieb am 26.12.2019 um 23:05:
Hallo,
vielen Dank für die vielen Anregungen. Für mich habe ich das jetzt so
gelöst:
Spalte C: von -Zeit, Format: #":"##;[ROT]-#":"##
Gültigkeit: Jeder Wert
Spalte D: bis -Zeit, Format: #":"##;[ROT]-#":"##
Gültigkeit: Ganze Zahl, Gültiger Bereich: 0 ... 2400
Berechnung der Dauer (hier in Zeile 3):
=WENN(ODER(C3="";D3="");"";(GANZZAHL(D3/100)+(D3-(GANZZAHL(D3/100)*100))/60)-(GANZZAHL(C3/100)+(C3-(GANZZAHL(C3/100)*100))/60))
Format: #.##0,00;[ROT]-#.##0,00
Das ist zwar kein richtiges Zeitformat, erfüllt fürs erste meine
Anforderung: nach Tippen von
1315
erscheint
13:15
und die Dauer wird auch richtig berechnet und kann weiterverarbeitet
werden, wenn auch nicht als Zeit, sondern als Dezimalzahl.
¦
--
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/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.