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
