Calc: Zeiten vereinfacht eingeben

classic Classic list List threaded Threaded
30 messages Options
Next » 12
Boris kirkorowicz-2 Boris kirkorowicz-2
Reply | Threaded
Open this post in threaded view
|

Calc: Zeiten vereinfacht eingeben

Hallo,
in meinen Zeitentabellen habe ich eine menge Zeitwerte einzutippen.
Dabei nervt mich besonders der Doppelpunkt, ohne den keine Zeit, sondern
bestenfalls ein Datum, Null Uhr, herauskommt. Eine Gültigkeitsprüfung
allein befriedigt mich dabei nicht so richtig. Am liebsten würde ich für
die Uhrzeit
> 13:15 h
nur
> [1] [3] [1] [5] [Enter]
tippen müssen.

Da das Ganze anschließend noch ausgedruckt werden soll, sollte die
Uhrzeit wirklich wie
> 13:15 h
aussehen und nicht etwa
> 1315
oder so ähnlich. Und rechnen können sollte man damit auch noch. ;-)
Wie kriege ich das am handhabungsfreundlichsten hin, am besten ohne
Hilfszellen?


--
Mit freundlichem Gruß                                 Best regards
                           Boris Kirkorowicz

--
Liste abmelden mit E-Mail an: [hidden email]
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
Günther Breitfuß Günther Breitfuß
Reply | Threaded
Open this post in threaded view
|

Re: Calc: Zeiten vereinfacht eingeben

Hallo Boris,

irgendwie muss Calc "wissen", dass 1234 keine Dezimalzahl sondern eine
Uhrzeit sein soll. Wenn dich der Doppelpunkt stört, kann du eventuell
ein anderes Zeichen dafür verwenden, welches du automatisch ersetzen
lässt. Ob das für dich praktikabel ist und dir das Originalzeichen nicht
abgeht, müsstest du testen.
Wie die Uhrzeit ausgegeben wird, ob als 13:15 oder 13:15 h, 13 Uhr 15,
Stunde 13 Minute 15, usw. kannst du über die Zellenformatierung festlegen.

LG Günther

privat
Am 26.12.2019 um 17:47 schrieb Boris Kirkorowicz:

> Hallo,
> in meinen Zeitentabellen habe ich eine menge Zeitwerte einzutippen.
> Dabei nervt mich besonders der Doppelpunkt, ohne den keine Zeit, sondern
> bestenfalls ein Datum, Null Uhr, herauskommt. Eine Gültigkeitsprüfung
> allein befriedigt mich dabei nicht so richtig. Am liebsten würde ich für
> die Uhrzeit
>> 13:15 h
> nur
>> [1] [3] [1] [5] [Enter]
> tippen müssen.
>
> Da das Ganze anschließend noch ausgedruckt werden soll, sollte die
> Uhrzeit wirklich wie
>> 13:15 h
> aussehen und nicht etwa
>> 1315
> oder so ähnlich. Und rechnen können sollte man damit auch noch. ;-)
> Wie kriege ich das am handhabungsfreundlichsten hin, am besten ohne
> Hilfszellen?
>
>

--
Liste abmelden mit E-Mail an: [hidden email]
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
Günther Breitfuß Günther Breitfuß
Reply | Threaded
Open this post in threaded view
|

Re: Calc: Zeiten vereinfacht eingeben

Nachtrag:

Alternativ kannst du auch vierstellige Dezimalzahlen eingeben und am
Ende mit suchen nach ([:digit:][:digit:])([:digit:][:digit:]) ersetzen
durch $1:$2 als reguläre Ausrücke.

LG Günther


privat
Am 26.12.2019 um 18:00 schrieb Günther Breitfuß:

> Hallo Boris,
>
> irgendwie muss Calc "wissen", dass 1234 keine Dezimalzahl sondern eine
> Uhrzeit sein soll. Wenn dich der Doppelpunkt stört, kann du eventuell
> ein anderes Zeichen dafür verwenden, welches du automatisch ersetzen
> lässt. Ob das für dich praktikabel ist und dir das Originalzeichen nicht
> abgeht, müsstest du testen.
> Wie die Uhrzeit ausgegeben wird, ob als 13:15 oder 13:15 h, 13 Uhr 15,
> Stunde 13 Minute 15, usw. kannst du über die Zellenformatierung festlegen.
>
> LG Günther
>
> privat
> Am 26.12.2019 um 17:47 schrieb Boris Kirkorowicz:
>> Hallo,
>> in meinen Zeitentabellen habe ich eine menge Zeitwerte einzutippen.
>> Dabei nervt mich besonders der Doppelpunkt, ohne den keine Zeit, sondern
>> bestenfalls ein Datum, Null Uhr, herauskommt. Eine Gültigkeitsprüfung
>> allein befriedigt mich dabei nicht so richtig. Am liebsten würde ich für
>> die Uhrzeit
>>> 13:15 h
>> nur
>>> [1] [3] [1] [5] [Enter]
>> tippen müssen.
>>
>> Da das Ganze anschließend noch ausgedruckt werden soll, sollte die
>> Uhrzeit wirklich wie
>>> 13:15 h
>> aussehen und nicht etwa
>>> 1315
>> oder so ähnlich. Und rechnen können sollte man damit auch noch. ;-)
>> Wie kriege ich das am handhabungsfreundlichsten hin, am besten ohne
>> Hilfszellen?
>>
>>

--
Liste abmelden mit E-Mail an: [hidden email]
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
Gerhard Weydt Gerhard Weydt
Reply | Threaded
Open this post in threaded view
|

Re: Calc: Zeiten vereinfacht eingeben

In reply to this post by Günther Breitfuß
Hallo Boris,

Calc speichert Datum und Uhrzeit als Vor- und Nachkommastellen einer
Zahl. Daher hilft auch eine Formateinstellung als Uhrzeit nichts, um zu
erkennen, dass es eine Uhrzeit sein soll, denn Calc muss auch seine
gespeicherten Dezimalzahlen in dieses Format umwandeln können und
braucht daher den Doppelpunkt als Signal, dass es sich eben nicht um den
Nachkommateil einer Zahl handelt, wie Günther das schon beschrieben hat.
Das erklärt auch, dass bei deinen Versuchen 0 Uhr herauskommt: du gibst
eine Ganzzahl ein, der Nachkommateil ist also 0.
Was außer Günthers Vorschlag in seiner zweiten Mail auch noch möglich
ist, ist, eine Hilfsspalte A zu verwenden, um die Uhrzeit einzugeben und
die eigentliche Spalte B zu berechnen; einfaches Beispiel:
der Inhalt von B3 ist =VERKETTEN(TEIL(A3;1;2);":";TEIL(A3;3;2))
Bei dieser Form muss man eine führende Null immer eingeben, da müsste
man ggf. noch etwas dazu tun, z. B. eine Abfrage auf drei- oder vierstellig.
Wenn alles erfasst ist, kann man über Daten -> Berechnen -> Formel in
Wert umwandeln die Formeln durch die Ergebnisse ersetzen und dann die
Hilfsspalte A löschen.
Du solltest für die Datei immer ein Muster haben, weil ja die Formel
nach der Aktion verschwunden ist, oder dir die Formel irgendwo aufheben,
dass du sie nur reinkopieren und anpassen musst.

Gruß

Gerhard

Am 26.12.2019 um 18:00 schrieb Günther Breitfuß:

> Hallo Boris,
>
> irgendwie muss Calc "wissen", dass 1234 keine Dezimalzahl sondern eine
> Uhrzeit sein soll. Wenn dich der Doppelpunkt stört, kann du eventuell
> ein anderes Zeichen dafür verwenden, welches du automatisch ersetzen
> lässt. Ob das für dich praktikabel ist und dir das Originalzeichen nicht
> abgeht, müsstest du testen.
> Wie die Uhrzeit ausgegeben wird, ob als 13:15 oder 13:15 h, 13 Uhr 15,
> Stunde 13 Minute 15, usw. kannst du über die Zellenformatierung festlegen.
>
> LG Günther
>
> privat
> Am 26.12.2019 um 17:47 schrieb Boris Kirkorowicz:
>> Hallo,
>> in meinen Zeitentabellen habe ich eine menge Zeitwerte einzutippen.
>> Dabei nervt mich besonders der Doppelpunkt, ohne den keine Zeit, sondern
>> bestenfalls ein Datum, Null Uhr, herauskommt. Eine Gültigkeitsprüfung
>> allein befriedigt mich dabei nicht so richtig. Am liebsten würde ich für
>> die Uhrzeit
>>> 13:15 h
>> nur
>>> [1] [3] [1] [5] [Enter]
>> tippen müssen.
>>
>> Da das Ganze anschließend noch ausgedruckt werden soll, sollte die
>> Uhrzeit wirklich wie
>>> 13:15 h
>> aussehen und nicht etwa
>>> 1315
>> oder so ähnlich. Und rechnen können sollte man damit auch noch. ;-)
>> Wie kriege ich das am handhabungsfreundlichsten hin, am besten ohne
>> Hilfszellen?
>>
>>


--
Liste abmelden mit E-Mail an: [hidden email]
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
Bernd Neumann Bernd Neumann
Reply | Threaded
Open this post in threaded view
|

Re: Calc: Zeiten vereinfacht eingeben

In reply to this post by Boris kirkorowicz-2
Hallo Boris,

ich habe keine Lösung ohne Hilfszelle parat, aber die lässt sich doch
nach der Eingabe ausblenden.
Mit der Formel

=ZEITWERT(VERKETTEN(LINKS(TEXT(A1;"0000");2);":";RECHTS(TEXT(A1;"0000");2)))

erhältst du eine Zahl, die sich als Stunde/Minute formatieren lässt und
mit der man weiterrechnen kann. Der Umweg über die Formatierung als Text
dient zur Ergänzung der führenden Null bei dreistelligen Dezimalzahlen.

Zu der gewünschten Anzeige mit dem " h" kommst du über

=VERKETTEN(LINKS(TEXT(A2;"0000");2);" : ";RECHTS(TEXT(A2;"0000");2); " h")

Das ergibt einen Text.

Bei beiden enthält  Spalte A die Hilfszellen, die angepasst werden müssen.

VG Bernd

Am 26.12.19 um 17:47 schrieb Boris Kirkorowicz:

> Hallo,
> in meinen Zeitentabellen habe ich eine menge Zeitwerte einzutippen.
> Dabei nervt mich besonders der Doppelpunkt, ohne den keine Zeit, sondern
> bestenfalls ein Datum, Null Uhr, herauskommt. Eine Gültigkeitsprüfung
> allein befriedigt mich dabei nicht so richtig. Am liebsten würde ich für
> die Uhrzeit
>> 13:15 h
> nur
>> [1] [3] [1] [5] [Enter]
> tippen müssen.
>
> Da das Ganze anschließend noch ausgedruckt werden soll, sollte die
> Uhrzeit wirklich wie
>> 13:15 h
> aussehen und nicht etwa
>> 1315
> oder so ähnlich. Und rechnen können sollte man damit auch noch. ;-)
> Wie kriege ich das am handhabungsfreundlichsten hin, am besten ohne
> Hilfszellen?
>
>

--
Liste abmelden mit E-Mail an: [hidden email]
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
Carl A. Schreiber Carl A. Schreiber
Reply | Threaded
Open this post in threaded view
|

Re: Calc: Zeiten vereinfacht eingeben

In reply to this post by Boris kirkorowicz-2
Mach doch eine Spalte mit Deinen Uhrzeiten 1234, 2345, 1255,
und in der Spalte daneben bestimmst Du mit den Textfunktionen Links()
und Rechts() Stunde und Minute und dann kannst dazwischen dann das :
hinein schmuggeln. Eventuell musst Du Calc noch 'sagen'. jetzt ist das
ein Uhrzeit.



Am 26.12.2019 um 17:47 schrieb Boris Kirkorowicz:

> Hallo,
> in meinen Zeitentabellen habe ich eine menge Zeitwerte einzutippen.
> Dabei nervt mich besonders der Doppelpunkt, ohne den keine Zeit, sondern
> bestenfalls ein Datum, Null Uhr, herauskommt. Eine Gültigkeitsprüfung
> allein befriedigt mich dabei nicht so richtig. Am liebsten würde ich für
> die Uhrzeit
>> 13:15 h
> nur
>> [1] [3] [1] [5] [Enter]
> tippen müssen.
>
> Da das Ganze anschließend noch ausgedruckt werden soll, sollte die
> Uhrzeit wirklich wie
>> 13:15 h
> aussehen und nicht etwa
>> 1315
> oder so ähnlich. Und rechnen können sollte man damit auch noch. ;-)
> Wie kriege ich das am handhabungsfreundlichsten hin, am besten ohne
> Hilfszellen?
>
>

--
Liste abmelden mit E-Mail an: [hidden email]
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
Boris kirkorowicz-2 Boris kirkorowicz-2
Reply | Threaded
Open this post in threaded view
|

Solved: [de-users] Calc: Zeiten vereinfacht eingeben

In reply to this post by Boris kirkorowicz-2
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.



Am 26.12.19 um 17:47 schrieb Boris Kirkorowicz:

> Hallo,
> in meinen Zeitentabellen habe ich eine menge Zeitwerte einzutippen.
> Dabei nervt mich besonders der Doppelpunkt, ohne den keine Zeit, sondern
> bestenfalls ein Datum, Null Uhr, herauskommt. Eine Gültigkeitsprüfung
> allein befriedigt mich dabei nicht so richtig. Am liebsten würde ich für
> die Uhrzeit
>> 13:15 h
> nur
>> [1] [3] [1] [5] [Enter]
> tippen müssen.
>
> Da das Ganze anschließend noch ausgedruckt werden soll, sollte die
> Uhrzeit wirklich wie
>> 13:15 h
> aussehen und nicht etwa
>> 1315
> oder so ähnlich. Und rechnen können sollte man damit auch noch. ;-)
> Wie kriege ich das am handhabungsfreundlichsten hin, am besten ohne
> Hilfszellen?
>
>

--
Mit freundlichem Gruß                                 Best regards
                           Boris Kirkorowicz

--
Liste abmelden mit E-Mail an: [hidden email]
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
Marino Salvalaggio Marino Salvalaggio
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben

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: [hidden email]
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
Gerhard Weydt Gerhard Weydt
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben

Hallo Marino,

Am 27.12.2019 um 10:35 schrieb Marino Salvalaggio:
...
> 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!
Das wurde nicht fallengelassen, es wurde nur die bisher in Deutschland
verwendete Form TT.MM.JJJJ (und nicht, wie du schreibst, die umgekehrte
JJJJ.MM.TT !!!) wieder offiziell zugelassen, weil sich keiner an die
Standardform JJJJ-MM-TT gehalten hat, was auch kein Wunder ist, weil
dieser internationale Standard auch kaum irgendwo offensiv vertrieben
und beworben wurde.
Und LibO unterstützt selbstverständlich auch das internationale Format,
gib mal in ein leeres Calc-Dokument 2019-12-27 ein, das ist dann
anschließend als Datumsfeld erkannt worden, mit eben dieser Formatierung.
LibO speichert Datum und Uhrzeit in einer Zahl, wobei die
Vorkommastellen die Tage seit einem Stichtag zählen, den ich momentan
nicht mehr weiß, das kann man ja ausprobieren, und die Nachkommstellen
die Uhrzeit ergeben, 0,5 entspricht 12 Uhr. Was man an der Oberfläche
sieht, ist immer umgerechnet und formatiert. Keine der vielen möglichen
Formen ist besser oder schlechter als die andere, LibO ist da neutral.

Gruß

Gerhard

--
Liste abmelden mit E-Mail an: [hidden email]
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
LO.Harald.Berger@t-online.de LO.Harald.Berger@t-online.de
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben

Hallo Gerhard und Marino,

 >>wobei die Vorkommastellen die Tage seit einem Stichtag zählen<<

Im Menü Extras>Optionen>LibreOfficeCalc>Berechnen

ist der Stichtag (standardmäßig) als 30.12.1899 vorgegeben.

Zur Auswahl gibt es dort noch zwei Alternativen

01.01.1900 (Star-Calc 1.0) und

01.01.1904

Freundliche Grüße

Harald

Am 27.12.2019 um 21:39 schrieb Gerhard Weydt:

> Hallo Marino,
>
> Am 27.12.2019 um 10:35 schrieb Marino Salvalaggio:
> ...
>> 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!
> Das wurde nicht fallengelassen, es wurde nur die bisher in Deutschland
> verwendete Form TT.MM.JJJJ (und nicht, wie du schreibst, die
> umgekehrte JJJJ.MM.TT !!!) wieder offiziell zugelassen, weil sich
> keiner an die Standardform JJJJ-MM-TT gehalten hat, was auch kein
> Wunder ist, weil dieser internationale Standard auch kaum irgendwo
> offensiv vertrieben und beworben wurde.
> Und LibO unterstützt selbstverständlich auch das internationale
> Format, gib mal in ein leeres Calc-Dokument 2019-12-27 ein, das ist
> dann anschließend als Datumsfeld erkannt worden, mit eben dieser
> Formatierung.
> LibO speichert Datum und Uhrzeit in einer Zahl, wobei die
> Vorkommastellen die Tage seit einem Stichtag zählen, den ich momentan
> nicht mehr weiß, das kann man ja ausprobieren, und die Nachkommstellen
> die Uhrzeit ergeben, 0,5 entspricht 12 Uhr. Was man an der Oberfläche
> sieht, ist immer umgerechnet und formatiert. Keine der vielen
> möglichen Formen ist besser oder schlechter als die andere, LibO ist
> da neutral.
>
> Gruß
>
> Gerhard
>

--
Liste abmelden mit E-Mail an: [hidden email]
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
Marino Salvalaggio Marino Salvalaggio
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben

In reply to this post by Gerhard Weydt
Hi Gerhard,

jep das hast Du richtig erkannt, habe mich da vertan...

Gerhard Weydt schrieb am 27.12.2019 um 21:39:

> Hallo Marino,
>
> Am 27.12.2019 um 10:35 schrieb Marino Salvalaggio:
> ...
>> 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!
> Das wurde nicht fallengelassen, es wurde nur die bisher in Deutschland
> verwendete Form TT.MM.JJJJ (und nicht, wie du schreibst, die umgekehrte
> JJJJ.MM.TT !!!

Die Reihenfolge ist im deutschsprachigen Raum tatsächlich umgekehrt; was
jedoch keinen Einfluss auf die abgespeicherten Daten hat, da diese nicht
Sprach-gebunden hinterlegt sind. Diese Werte werden nur jeweils anders
interpretiert ausgegeben.

Es gilt jedoch zu beachten, dass wesentlicher Unterschiede zwischen:
A. TIME und DATE_AND_TIME (DIN)
B. Time_of_Day und Date_and_Time_of Day (ISO)
bestehen.
Die binäre Hinterlegung folgt dabei nicht der gleichen Gesetzen.

In diesem Zusammenhang ist mir aufgefallen, dass in LibOf eine unschöne
Ungereimtheit existiert.

Da bei der DtTm Eingabe "Zellen formatieren" Datum und Uhrzeit die
Platzhalter für:
1. Datum TT.MM.JJJJ
2. Uhrzeit HH:MM:DD
verwendet werden, erfolgt das unangenehme Ersetzen von Uhrzeit in Datum,
wenn "MM" als Format_Code eingefügt wird. Wird ":MM" oder "MM:"
geschrieben, dann bleibt die Minute von Time, jedoch erscheint nun in
der Tabelle der Wert mit vor- bez, nach-gestelltem Doppelpunkt; gerade
das, was es unmöglich macht hier eine Glanzzahl einzusetzen!
In gewissen Programmieroberflächen welche Format-restriktiv sind, sind
die Datums-Platzhalter in Grossbuchstaben-, die Zeit-Platzhalter in
Kleinbuchstaben gehalten (e); DD.MM.JJJJ / hh:mm:ss,ms damit solche
Vertauschungen gar nicht erst auftreten können!

) wieder offiziell zugelassen, weil sich keiner an die

> Standardform JJJJ-MM-TT gehalten hat, was auch kein Wunder ist, weil
> dieser internationale Standard auch kaum irgendwo offensiv vertrieben
> und beworben wurde.
> Und LibO unterstützt selbstverständlich auch das internationale Format,
> gib mal in ein leeres Calc-Dokument 2019-12-27 ein, das ist dann
> anschließend als Datumsfeld erkannt worden, mit eben dieser Formatierung.
> LibO speichert Datum und Uhrzeit in einer Zahl, wobei die
> Vorkommastellen die Tage seit einem Stichtag zählen, den ich momentan
> nicht mehr weiß, das kann man ja ausprobieren, und die Nachkommstellen
> die Uhrzeit ergeben, 0,5 entspricht 12 Uhr. Was man an der Oberfläche
> sieht, ist immer umgerechnet und formatiert. Keine der vielen möglichen
> Formen ist besser oder schlechter als die andere, LibO ist da neutral.
>
> Gruß
>
> Gerhard
>
Gruss Marino


--
Liste abmelden mit E-Mail an: [hidden email]
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
Boris kirkorowicz-2 Boris kirkorowicz-2
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben

In reply to this post by LO.Harald.Berger@t-online.de
Hallo,

Am 27.12.19 um 22:09 schrieb [hidden email]:
> Im Menü Extras>Optionen>LibreOfficeCalc>Berechnen
> ist der Stichtag (standardmäßig) als 30.12.1899 vorgegeben.

warum eigentlich der 30. und nicht der 31.?



--
Mit freundlichem Gruß                                 Best regards
                           Boris Kirkorowicz

--
Liste abmelden mit E-Mail an: [hidden email]
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
Wolfgang Jäth Wolfgang Jäth
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben



Am 28.12.2019 um 11:05 schrieb Boris Kirkorowicz:
> Hallo,
>
> Am 27.12.19 um 22:09 schrieb [hidden email]:
>> Im Menü Extras>Optionen>LibreOfficeCalc>Berechnen
>> ist der Stichtag (standardmäßig) als 30.12.1899 vorgegeben.
>
> warum eigentlich der 30. und nicht der 31.?

Das ermöglicht, dass der interne Wert 1,0000 direkt den Zeitstempel
01.01.1900 00:00:00 repräsentieren kann. Und dementsprechend jeder
beliebige Datums- und Zeitwert dirket in eine entsprechende Zahl (Tage
seit Stichtag) umgewandelt werden kann. Bei jedem anderen Basiswert
müsste bei der Umwandlung immer ein entsprechender Offset abgezogen oder
hinzugefügt werden.

Wobei die Angabe 30.12.1899 etwas zu Missverständnissen verleiten kann,
eigentlich gemeint ist nämlich genau genommen der Zeitstempel
23.12.1899 24:00 (aka 31.12.1899 00:00).

Wolfgang
--
Donald Trump ist ein großer Visionär, der seiner Zeit weit voraus ist:
Er verbreitet schon jetzt den Slogan "make America great again", obwohl
dieser erst in der Ära /nach/ ihm seine volle Bedeutung entfalten wird.


--
Liste abmelden mit E-Mail an: [hidden email]
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
Marino Salvalaggio Marino Salvalaggio
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben

In reply to this post by Gerhard Weydt
Hallo Gerhard,

Gerhard Weydt schrieb am 27.12.2019 um 21:39:

> Hallo Marino,
>
> Am 27.12.2019 um 10:35 schrieb Marino Salvalaggio:
> ...
>> 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!
> Das wurde nicht fallengelassen, es wurde nur die bisher in Deutschland
> verwendete Form TT.MM.JJJJ (und nicht, wie du schreibst, die umgekehrte
> JJJJ.MM.TT !!!) wieder offiziell zugelassen, weil sich keiner an die
> Standardform JJJJ-MM-TT gehalten hat, was auch kein Wunder ist, weil
> dieser internationale Standard auch kaum irgendwo offensiv vertrieben
> und beworben wurde.
> Und LibO unterstützt selbstverständlich auch das internationale Format,
> gib mal in ein leeres Calc-Dokument 2019-12-27 ein, das ist dann
> anschließend als Datumsfeld erkannt worden, mit eben dieser Formatierung.
> LibO speichert Datum und Uhrzeit in einer Zahl, wobei die
> Vorkommastellen die Tage seit einem Stichtag zählen, den ich momentan
> nicht mehr weiß, das kann man ja ausprobieren, und die Nachkommstellen
> die Uhrzeit ergeben, 0,5 entspricht 12 Uhr.

Es tut mir leid, aber hier stimmt etwas nicht...
Es werden bestimmt keine Kommastellen im Speicher verwendet!
Das würde ja bedeuten, dass eine FLOAT bez. REAL in Anwendung wäre. Das
jedoch wäre mit der erheblichen Tatsache verbunden, dass je nach
rechen-Operanden enorme Abweichungen der tatsächlichen Zeit resultieren
würden.
        => https://de.wikipedia.org/wiki/Gleitkommazahl
  / Eigenschaften einer Gleitkommaarithmetik

TIME wird in Millisekunden in INT hinterlegt, darum auch der beschränkte
Umfang von ~±596 Std.
(das reicht nicht mal für einen Monat ~720h, aber für ms-genaue
Wochenuhren und Funktion-Timer prädestiniert)

Zeit und Datum DATE_AND_TIME werden daher im Speicher immer Binär in
Anzahl Sekunden ab Fixpunkt hinterlegt.
Bei 32Bit DINT ergibt das einen Umfang von ± ~68 Jahren vom gesetzten
Nullpunkt aus gerechnet; darum wird ja auch zwingend ein Fixpunkt benötigt.
(Bei 32Bit-Rechnern musste daher für eine grössere Genauigkeit bez.
grösseren Umfang auf 2 DINT geschiftet werden; eine Technik die unter
8Bit-Prozessoren früher zum täglichen Brot gehörten...)

Die Rechnung an sich ist trivial:
1Min = 60 Sek
1Std = 60 Min Bez. 3600Sek.
Tag = 60*60*24 = 86400 Sekunden.
Somit können Zeiten Addiert, Subtrahiert u. u. u. werden ohne dass
spezielle Interpretationen benötigt werden.
Da eine INT Zeit die in INT dividiert wird ohne Rest zurückgegeben wird
(keine Rundung) kann diese direkt z.B. mit 60 geteilt werden und ich
erhalte die Zeit in Minuten - u.s.w. Solches macht der Zeitinterpreter.
Dieser interpunktiert diese Resultate und gibt die Werte nach Addition
mit dem Fixpunkt formatiert aus: DD.MM.JJJJ hh:mm:ss aus.
In Jahresbereich muss jedoch ein Kalender mit integriert sein, damit die
Schalttage mit einfliessen sonst kommt es zu Interpretationsabweich-ungen!
Bei 64Bit LINT ist die Beschränkung an sich kein Thema ist doch der
Bereich bei ±1.45E11 Jahre in Sekunden; daher kann hier die Formatierung
auch bis Millisekunde genau ausgegeben werden.

> Was man an der Oberfläche
> sieht, ist immer umgerechnet und formatiert. Keine der vielen möglichen
> Formen ist besser oder schlechter als die andere, LibO ist da neutral.
>
> Gruß
>
> Gerhard
>
Gruss
Marino

--
Liste abmelden mit E-Mail an: [hidden email]
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
Wolfgang Jäth Wolfgang Jäth
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben

Am 28.12.2019 um 17:22 schrieb Marino Salvalaggio:
>
> Es tut mir leid, aber hier stimmt etwas nicht...
> Es werden bestimmt keine Kommastellen im Speicher verwendet!
> Das würde ja bedeuten, dass eine FLOAT bez. REAL in Anwendung wäre.

Nein, DOUBLE.

> Das
> jedoch wäre mit der erheblichen Tatsache verbunden, dass je nach
> rechen-Operanden enorme Abweichungen der tatsächlichen Zeit resultieren
> würden.
> => https://de.wikipedia.org/wiki/Gleitkommazahl
>   / Eigenschaften einer Gleitkommaarithmetik

Ja, tut es; und ja, in der Tat, Rundungsfehler können im Extremfall bis
in den Nanosekundenbereich druchschlagen.

> TIME wird in Millisekunden in INT hinterlegt, darum auch der beschränkte
> Umfang von ~±596 Std.

Ich habe keine Ahnung, von welchem Programm du redest, von Calc
jedenfalls nicht; da gibt es überhaupt keinen Variablentyp TIME o. ä.
Und auch in Base aka der Makrosprache gibt es das nicht, höchstens die
/Funktion/ TIME; den Variablentyp /DATE/.

> (das reicht nicht mal für einen Monat ~720h, aber für ms-genaue
> Wochenuhren und Funktion-Timer prädestiniert)
>
> Zeit und Datum DATE_AND_TIME werden daher im Speicher immer Binär in
> Anzahl Sekunden ab Fixpunkt hinterlegt.

*Alle* Daten, sogar Texte, werden intern binär abgelegt. Und Calc selbst
kennt überhaupt nur 3 Datentypen, nämlich String aka Text, Integer und
Gleitkomma aka Double.

> Bei 32Bit DINT

Was bitte ist ein DINT? Meinst du etwa LONG?

> ergibt das einen Umfang von ± ~68 Jahren vom gesetzten

Bei einem DOUBLE ergibt sich ein Wertebereich von rund 4,93E+305 Jahren.
Zum Vergleich, das Universum ist überhaupt erst ca. 1,37E+010 Jahre alt.
Der Wertebereich reicht also durchaus noch ein paar Monate. Aber ja, mit
Werten größer/kleiner ca. +/- 1,80E+308 kann Calc nicht mehr rechnen.

> Die Rechnung an sich ist trivial:
> 1Min = 60 Sek
> 1Std = 60 Min Bez. 3600Sek.
> Tag = 60*60*24 = 86400 Sekunden.
> Somit können Zeiten Addiert, Subtrahiert u. u. u. werden ohne dass
> spezielle Interpretationen benötigt werden.

Im Prinzip ist deine Schlussfolgerung schon richtig. Aber sie gilt
natürlich genauso, wenn 1 Sekunde als 1/86400 Tag aka
0,00001157407407407410 Tage repräsentiert wird. 2 Sekunden ist in beiden
Fällen das doppelte, 86400 Sekunden ist in beiden Fällen das
86400-fache, usw.; völlig problemlos, und ohne spezielle
Interpretationen. Das würde sogar funktioneren, wenn du den Wert Pi für
1 Sekunde (oder 1 Tag, 1 Woche, 1 Jahr, 1 Millisekunde, oder sonst was,
sogar mit sieben drittel Stunden, oder fünfundzwanzig
siebenunddreißigstel Wochen, usw.) an nimmst.

> Da eine INT Zeit die in INT dividiert wird ohne Rest zurückgegeben wird
> (keine Rundung) kann diese direkt z.B. mit 60 geteilt werden und ich
> erhalte die Zeit in Minuten - u.s.w.

Und was bitte machst du mit Millisekunden usw.?

> Solches macht der Zeitinterpreter.

Der wer? Meinst du etwa das Teil, mit dem eine Zeitreisemaschine
gesteuert wird?

Wolfgang
--
Donald Trump ist ein großer Visionär, der seiner Zeit weit voraus ist:
Er verbreitet schon jetzt den Slogan "make America great again", obwohl
dieser erst in der Ära /nach/ ihm seine volle Bedeutung entfalten wird.


--
Liste abmelden mit E-Mail an: [hidden email]
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
Gerhard Weydt Gerhard Weydt
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben

Hallo Marino,

zur Ergänzung von Wolfgangs Aussagen hier die betreffenden Eigenschaften
der Zelle, in der ich einen Testwert eingegeben habe, ausgelesen mit Xray:
FormulaLocal              string              "28.12.2019 17:11:45"
Formula                   string                 "43827.7164930556"
Value                     double                   43827.7164930556
String                    string              "28.12.2019 17:11:45"

Gruß
Gerhard

Am 28.12.2019 um 20:30 schrieb Wolfgang Jäth:

> Am 28.12.2019 um 17:22 schrieb Marino Salvalaggio:
>> Es tut mir leid, aber hier stimmt etwas nicht...
>> Es werden bestimmt keine Kommastellen im Speicher verwendet!
>> Das würde ja bedeuten, dass eine FLOAT bez. REAL in Anwendung wäre.
> Nein, DOUBLE.
>
>> Das
>> jedoch wäre mit der erheblichen Tatsache verbunden, dass je nach
>> rechen-Operanden enorme Abweichungen der tatsächlichen Zeit resultieren
>> würden.
>> => https://de.wikipedia.org/wiki/Gleitkommazahl
>>     / Eigenschaften einer Gleitkommaarithmetik
> Ja, tut es; und ja, in der Tat, Rundungsfehler können im Extremfall bis
> in den Nanosekundenbereich druchschlagen.
>
>> TIME wird in Millisekunden in INT hinterlegt, darum auch der beschränkte
>> Umfang von ~±596 Std.
> Ich habe keine Ahnung, von welchem Programm du redest, von Calc
> jedenfalls nicht; da gibt es überhaupt keinen Variablentyp TIME o. ä.
> Und auch in Base aka der Makrosprache gibt es das nicht, höchstens die
> /Funktion/ TIME; den Variablentyp /DATE/.
>
>> (das reicht nicht mal für einen Monat ~720h, aber für ms-genaue
>> Wochenuhren und Funktion-Timer prädestiniert)
>>
>> Zeit und Datum DATE_AND_TIME werden daher im Speicher immer Binär in
>> Anzahl Sekunden ab Fixpunkt hinterlegt.
> *Alle* Daten, sogar Texte, werden intern binär abgelegt. Und Calc selbst
> kennt überhaupt nur 3 Datentypen, nämlich String aka Text, Integer und
> Gleitkomma aka Double.
>
>> Bei 32Bit DINT
> Was bitte ist ein DINT? Meinst du etwa LONG?
>
>> ergibt das einen Umfang von ± ~68 Jahren vom gesetzten
> Bei einem DOUBLE ergibt sich ein Wertebereich von rund 4,93E+305 Jahren.
> Zum Vergleich, das Universum ist überhaupt erst ca. 1,37E+010 Jahre alt.
> Der Wertebereich reicht also durchaus noch ein paar Monate. Aber ja, mit
> Werten größer/kleiner ca. +/- 1,80E+308 kann Calc nicht mehr rechnen.
>
>> Die Rechnung an sich ist trivial:
>> 1Min = 60 Sek
>> 1Std = 60 Min Bez. 3600Sek.
>> Tag = 60*60*24 = 86400 Sekunden.
>> Somit können Zeiten Addiert, Subtrahiert u. u. u. werden ohne dass
>> spezielle Interpretationen benötigt werden.
> Im Prinzip ist deine Schlussfolgerung schon richtig. Aber sie gilt
> natürlich genauso, wenn 1 Sekunde als 1/86400 Tag aka
> 0,00001157407407407410 Tage repräsentiert wird. 2 Sekunden ist in beiden
> Fällen das doppelte, 86400 Sekunden ist in beiden Fällen das
> 86400-fache, usw.; völlig problemlos, und ohne spezielle
> Interpretationen. Das würde sogar funktioneren, wenn du den Wert Pi für
> 1 Sekunde (oder 1 Tag, 1 Woche, 1 Jahr, 1 Millisekunde, oder sonst was,
> sogar mit sieben drittel Stunden, oder fünfundzwanzig
> siebenunddreißigstel Wochen, usw.) an nimmst.
>
>> Da eine INT Zeit die in INT dividiert wird ohne Rest zurückgegeben wird
>> (keine Rundung) kann diese direkt z.B. mit 60 geteilt werden und ich
>> erhalte die Zeit in Minuten - u.s.w.
> Und was bitte machst du mit Millisekunden usw.?
>
>> Solches macht der Zeitinterpreter.
> Der wer? Meinst du etwa das Teil, mit dem eine Zeitreisemaschine
> gesteuert wird?
>
> Wolfgang


--
Liste abmelden mit E-Mail an: [hidden email]
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
Boris kirkorowicz-2 Boris kirkorowicz-2
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben

In reply to this post by Wolfgang Jäth
Hallo,

Am 28.12.19 um 13:12 schrieb Wolfgang Jäth:

>
>
> Am 28.12.2019 um 11:05 schrieb Boris Kirkorowicz:
>> Hallo,
>>
>> Am 27.12.19 um 22:09 schrieb [hidden email]:
>>> Im Menü Extras>Optionen>LibreOfficeCalc>Berechnen
>>> ist der Stichtag (standardmäßig) als 30.12.1899 vorgegeben.
>>
>> warum eigentlich der 30. und nicht der 31.?
>
> Das ermöglicht, dass der interne Wert 1,0000 direkt den Zeitstempel
> 01.01.1900 00:00:00 repräsentieren kann.

genau das ist dann eben nicht der Fall, der 01.01.1900 entspräche dann
der 2 und nicht der 1 -das ist dann nämlich der 31.12.1899. Für mich
sieht im das ersten Anlauf nicht nach einer Erleichterung, Merkhilfe
o.ä. aus.


> Wobei die Angabe 30.12.1899 etwas zu Missverständnissen verleiten kann,
> eigentlich gemeint ist nämlich genau genommen der Zeitstempel
> 23.12.1899 24:00 (aka 31.12.1899 00:00).

Nicht bei mir, da ist das tatsächlich der 30. Dezember 1899, 00:00:00
(Copy&Paste).



--
Mit freundlichem Gruß                                 Best regards
                           Boris Kirkorowicz

--
Liste abmelden mit E-Mail an: [hidden email]
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
Thomas Krumbein-3 Thomas Krumbein-3
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben

Hei Boris, Wolfgang,

Am 29.12.2019 um 00:46 schrieb Boris Kirkorowicz:

> Hallo,
>
> Am 28.12.19 um 13:12 schrieb Wolfgang Jäth:
>>
>> Am 28.12.2019 um 11:05 schrieb Boris Kirkorowicz:
>>> Hallo,
>>>
>>> Am 27.12.19 um 22:09 schrieb [hidden email]:
>>>> Im Menü Extras>Optionen>LibreOfficeCalc>Berechnen
>>>> ist der Stichtag (standardmäßig) als 30.12.1899 vorgegeben.
>>> warum eigentlich der 30. und nicht der 31.?
>> Das ermöglicht, dass der interne Wert 1,0000 direkt den Zeitstempel
>> 01.01.1900 00:00:00 repräsentieren kann.
> genau das ist dann eben nicht der Fall, der 01.01.1900 entspräche dann
> der 2 und nicht der 1 -das ist dann nämlich der 31.12.1899. Für mich
> sieht im das ersten Anlauf nicht nach einer Erleichterung, Merkhilfe
> o.ä. aus.

Es gibt da noch eine andere "Theorie". 1,0 sollte der 01.01.1900 sein,
und das "Große" Excel-Programm eines Marktführers hat dies auch so
intern bestimmt und festgelegt.

Leider hat man in der weiteren Berechnung das Schaltjahr 1904
"vergessen", so dass hier ein Tag fehlt. So stimmen die Zeitwerte
zwischen LO/AOO und Excel in der Zeitspanne von 1900 bis 1904 nicht
überein - erst ab dem 1. März 1904 passt das dann wieder. So erklärt
sich der Stichtag 30.12.1899 als Starttag.

Viele Grüße

Thomas


--
Liste abmelden mit E-Mail an: [hidden email]
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
Marino Salvalaggio Marino Salvalaggio
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben

In reply to this post by Wolfgang Jäth
Hallo Wolfgang

Wolfgang Jäth schrieb am 28.12.2019 um 20:30:

> Am 28.12.2019 um 17:22 schrieb Marino Salvalaggio:
>>
>> Es tut mir leid, aber hier stimmt etwas nicht...
>> Es werden bestimmt keine Kommastellen im Speicher verwendet!
>> Das würde ja bedeuten, dass eine FLOAT bez. REAL in Anwendung wäre.
>
> Nein, DOUBLE.
>
>> Das
>> jedoch wäre mit der erheblichen Tatsache verbunden, dass je nach
>> rechen-Operanden enorme Abweichungen der tatsächlichen Zeit resultieren
>> würden.
>> => https://de.wikipedia.org/wiki/Gleitkommazahl
>>     / Eigenschaften einer Gleitkommaarithmetik
>
> Ja, tut es; und ja, in der Tat, Rundungsfehler können im Extremfall bis
> in den Nanosekundenbereich druchschlagen.
>
>> TIME wird in Millisekunden in INT hinterlegt, darum auch der beschränkte
>> Umfang von ~±596 Std.
>
> Ich habe keine Ahnung, von welchem Programm du redest, von Calc
> jedenfalls nicht; da gibt es überhaupt keinen Variablentyp TIME o. ä.
> Und auch in Base aka der Makrosprache gibt es das nicht, höchstens die
> /Funktion/ TIME; den Variablentyp /DATE/.
>
>> (das reicht nicht mal für einen Monat ~720h, aber für ms-genaue
>> Wochenuhren und Funktion-Timer prädestiniert)
>>
>> Zeit und Datum DATE_AND_TIME werden daher im Speicher immer Binär in
>> Anzahl Sekunden ab Fixpunkt hinterlegt.
>
> *Alle* Daten, sogar Texte, werden intern binär abgelegt. Und Calc selbst
> kennt überhaupt nur 3 Datentypen, nämlich String aka Text, Integer und
> Gleitkomma aka Double.

Jep,
aber nur bedingt richtig "Wahrheitswert" (BOOL) hast Du unterschlagen...
und String ist in sich kein echter Datentyp sondern ein eindimensionales
ARRAY zu 8Bit.

Wenn das, was Du hier sagst richtig ist; das die Zeiten in Calc in
Fliesskomma-Werten hinterlegt sind; dann werden bei gewissen
Rechenoperationen unweigerlich Fehler auftrete.
Nicht gerade das Gesuchte. In INT würde solches nie auftreten. Auf
Leitsystemen mit Echtzeiteinträgen ist es Bedingung, dass die
Zeitstempel kohärent sind!
Gerade beim Abgleich von Letzt-wert, was in Leitebene als Bedingung für
die Neuwert-Gültigkeit steht (DCP/IP Daten-Überholungen), eine absolute
Bedingung.
Somit kommt Calc als Tabelle für Datenhinterlegung für diesen Zweck
nicht in Frage!

>
>> Bei 32Bit DINT
>
> Was bitte ist ein DINT? Meinst du etwa LONG?

Es ist mir sehr wohl bewusst, dass heute oft nur INT geschrieben wird,
obwohl es eigentlich einen grösseren Bereich umfasst. Da kommt daher,
dass auf einem Rechner die Grösse durch einen 16er-, 32er- oder
64er-BitProzessor festgelegt wird. So bezieht sich der Begriff INT heute
zumeist auf die Maximal-Bit-zahl der Recheneinheit.

Meine Aussagen beruhen aber auf den Standard von den grundsätzlichen
ANY_INT Datentypen.
SINT = ShortInteger 8Bit = 1 BYTE (in C CHAR ) -128...127 / 255
INT  = Integer 16Bit= 2 BYTE -32768...32767
DINT = DoubleInteger 32Bit= 4 BYTE
LINT = LongInteger 64Bit= 8 BYTE

Die Aufgliederung in BYTE ist darum zu berücksichtigen, weil die meisten
seriellen Transportmittel; CAN, PROFIBUS, MODBUS, Ethernet; Byte-weise
übertragen und die Speicher in Byte organisiert sind!
Darum wird der Speicher in Byte-Grösse definiert und bei der
Speicher-übertragung muss ja auch ein Pointer gesetzt werden, welcher
auf die erste Byte-Adresse zeigt.

Mit Vorstellung "U= für unsigned
in Abwandlung ohne Negativwerte dafür doppelten Umfang
(Höchstwertigels Bit wird nicht als Negativ sondern als Zahlenwert genutzt)
Demselben Muster folgt auch ANY_REAL
        REAL = 32Bit
        LREAL= 64Bit

>
>> ergibt das einen Umfang von ± ~68 Jahren vom gesetzten
>
> Bei einem DOUBLE ergibt sich ein Wertebereich von rund 4,93E+305 Jahren.
> Zum Vergleich, das Universum ist überhaupt erst ca. 1,37E+010 Jahre alt.
> Der Wertebereich reicht also durchaus noch ein paar Monate. Aber ja, mit
> Werten größer/kleiner ca. +/- 1,80E+308 kann Calc nicht mehr rechnen.
>
>> Die Rechnung an sich ist trivial:
>> 1Min = 60 Sek
>> 1Std = 60 Min Bez. 3600Sek.
>> Tag = 60*60*24 = 86400 Sekunden.
>> Somit können Zeiten Addiert, Subtrahiert u. u. u. werden ohne dass
>> spezielle Interpretationen benötigt werden.
>
> Im Prinzip ist deine Schlussfolgerung schon richtig. Aber sie gilt
> natürlich genauso, wenn 1 Sekunde als 1/86400 Tag aka
> 0,00001157407407407410 Tage repräsentiert wird. 2 Sekunden ist in beiden
> Fällen das doppelte, 86400 Sekunden ist in beiden Fällen das
> 86400-fache, usw.; völlig problemlos, und ohne spezielle
> Interpretationen. Das würde sogar funktioneren, wenn du den Wert Pi für
> 1 Sekunde (oder 1 Tag, 1 Woche, 1 Jahr, 1 Millisekunde, oder sonst was,
> sogar mit sieben drittel Stunden, oder fünfundzwanzig
> siebenunddreißigstel Wochen, usw.) an nimmst.
>
>> Da eine INT Zeit die in INT dividiert wird ohne Rest zurückgegeben wird
>> (keine Rundung) kann diese direkt z.B. mit 60 geteilt werden und ich
>> erhalte die Zeit in Minuten - u.s.w.
>
> Und was bitte machst du mit Millisekunden usw.?
>
>> Solches macht der Zeitinterpreter.

Die richtige Reihenfolge für ein Datum ist:
Jahr.Monat.Tag.Stunde:Minute:Sekunde,Millisekunde
Daraus ergibt sich eine absteigende Rechen-Reihenfolge von der grössten
Einheit "Jahr" zur kleinsten "Sekunde", Rest "Millisekunde"
        Zeitwert / 1 Jahr = Jahre
        (Zeitwert - Jahre)/ 1 Tag = Tage
        (Zeitwert - Jahre - Tage) / 1 Stunde = Stunden
        (Zeitwert - Jahre - Tage - Stunden) / 1 Minute = Minuten
        ...
Die Millisekunden findest Du im Rest nach der Sekundendivision durch
Subtraktion aller vorherigen Werte.

Solches ist in der Regel schon in der Alu hinterlegt; kommt hier auf die
Hardware an = BIOS / Firmware je nach Hersteller...
Wie das genau in Calc abgebildet ist weiss ich nun tatsächlich nicht.
Soweit mir bekannt ist Calc jedoch in "C" programmiert und dürfte daher
die ALU für die Interpretation nutzen. Natürlich können Algorithmen auch
diskret aus-programmiert und andere Wege genutzt sein. Das Scheint mir
hier sogar so zu sein, da ja diese Doppeldeutigkeit von "M" für Monat
und Minute in Calc existiert!

ps. Nanosekunden sind nicht im Umfang von Zeitstempeln. Müssen solche
verarbeitet werden; in Calc kaum möglich; muss dafür ein Interrupt
genutzt werden, da die Prozessorleistung solches sonst nicht abgreifen
kann.
Im Maschinenbau kommt solches z.B. bei Inkrementalgeber vor und bedingt
eine entsprechende Hardwarestruktur und eine Firmware die Interrupt-
Funktionen zur Verfügung stellt.

>
> Der wer? Meinst du etwa das Teil, mit dem eine Zeitreisemaschine
> gesteuert wird?
>
> Wolfgang
>
Schönen Tag

Marino

--
Liste abmelden mit E-Mail an: [hidden email]
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
Michael Höhne Michael Höhne
Reply | Threaded
Open this post in threaded view
|

Re: Solved: [de-users] Calc: Zeiten vereinfacht eingeben

Hallo Marino,

> Wenn das, was Du hier sagst richtig ist; das die Zeiten in Calc in
> Fliesskomma-Werten hinterlegt sind; dann werden bei gewissen
> Rechenoperationen unweigerlich Fehler auftrete.
> Nicht gerade das Gesuchte. In INT würde solches nie auftreten. Auf
> Leitsystemen mit Echtzeiteinträgen ist es Bedingung, dass die
> Zeitstempel kohärent sind!
> Gerade beim Abgleich von Letzt-wert, was in Leitebene als Bedingung
> für die Neuwert-Gültigkeit steht (DCP/IP Daten-Überholungen), eine
> absolute Bedingung.
> Somit kommt Calc als Tabelle für Datenhinterlegung für diesen Zweck
> nicht in Frage!

In solchen Fällen müsstest du Zeitangaben in INT _codieren_. Es hält
dich ja niemand davon ab, Zeiträume oder Zeitpunkte z.B. in Sekunden
oder Millisekunden zu speichern. Im Falle eines Zeitpunktes müsstest du
allerdings einen passenden Zeitpunkt als Nullpunkt festlegen. Du
könntest den Zeitpunkt des Messbeginns (möglicherweise als String) in
die Tabelle schreiben und diesem den Wert 0 (Millit-)Sekunden zuweisen.
Alle weiteren Zeitwerte werden dann als INT-Wert bezüglich dieses
Startwertes abgelegt.

> > Der wer? Meinst du etwa das Teil, mit dem eine Zeitreisemaschine
> > gesteuert wird?

Nein, das ist ein "Fluxkompensator" ;-)

Admin04


--
    ____        
   / / / / /__/      Michael Höhne /
  /   / / /  /  [hidden email] /
 ________________________________/


--
Liste abmelden mit E-Mail an: [hidden email]
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
Next » 12