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: [email protected]
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

Antwort per Email an