Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Code von Zeitrechnung verbessern (https://www.delphipraxis.net/202694-code-von-zeitrechnung-verbessern.html)

DieDolly 28. Nov 2019 15:29

AW: Code von Zeitrechnung verbessern
 
Ich habe kein Datum was ich umrechnen möchte. Ich habe eine Sekundenangabe, die zu einer Zeitangabe wie in einem Videoplayer umgerechnet werden sollen.
Das macht mein Code auch aber ich frage, wie man den verbessern kann.

Keine Alternatriven bitte.

jfheins 28. Nov 2019 16:04

AW: Code von Zeitrechnung verbessern
 
Du kannst die Monate weglassen (zu variabel) und nur noch Tage + Jahre angeben. Für letztere kannst du auch mit dem Mittelwert (365.2425 Tage pro Jahr) rechnen.

DieDolly 28. Nov 2019 16:06

AW: Code von Zeitrechnung verbessern
 
Zitat:

Du kannst die Monate weglassen (zu variabel) und nur noch Tage + Jahre angeben.
Wie genau meinst du das? Ich verstehe nicht warum ich eine solche Information weglassen sollte.

Ich dachte eigentlich an eine rechnerische Verbesserung und nicht an eine durch Löschen von irgendwelchen Informationen die man braucht.

jfheins 28. Nov 2019 16:39

AW: Code von Zeitrechnung verbessern
 
Naja, du sagtest ja
Zitat:

Ich habe eine Sekundenangabe, die zu einer Zeitangabe wie in einem Videoplayer umgerechnet werden sollen.
Und ich würde da eben empfehlen, gar keine Monate anzugeben. Also werden aus 36.767.506 Sekunden eben einfach "1 Jahr, 60 Tage, 7 Stunden, 22 Minuten und 34 Sekunden"
Monate hier anzugeben, kann eigentlich gar nicht richtig funktionieren. (sind 60 Tage jetzt 2 Monate 0 Tage oder 2 Monate und 1 Tag?)

DieDolly 28. Nov 2019 16:44

AW: Code von Zeitrechnung verbessern
 
Das mit dem Videoplayer war nur ein Beispiel. Ich möchte natürlich sämtliche Informationen behalten!

Rollo62 28. Nov 2019 16:46

AW: Code von Zeitrechnung verbessern
 
Delphi-Quellcode:
 LMonths := LDays div 30; // --> ! Hier passt es nicht, sind das sowas wie "Industrietage" ?
 LDays := LDays mod 30;   // --> ! dito
Wenn Du damit rechnest, und Dir die reale Zeit egal ist, dann ist es doch OK für dich.
Was genau willst Du denn überhaupt erreichen, beste Performance ?

Luckie 28. Nov 2019 16:50

AW: Code von Zeitrechnung verbessern
 
Ich glaube, du bist dir der Problematik der Monate nicht bewusst. Die Monate sind unterschiedlich lang. Und sind sie nicht mal konstant lang siehe Monat Februar. Wenn du jetzt eine Zeitspanne hast. Sagen wir 50 Jahre, dann musst du die Anzahl der enthaltenen Schaltjahre berücksichtigen und entsprechend die Länge des Monats Februar. Das ist aber nur die halbe Miete. Es kommt noch darauf an in welche Jahre die Zeitspanne fällt. Denn die Anzahl der Schaltjahre kann variieren in welche Jahre die Zeitspanne fällt. Das sind komplexe Berechnungen, wenn man überhaupt alleine mit Berechnungen das Problem lösen kann und nicht noch eine Tabelle benötigt zum Nachschlagen.

DieDolly 28. Nov 2019 16:56

AW: Code von Zeitrechnung verbessern
 
Zitat:

Was genau willst Du denn überhaupt erreichen, beste Performance ?
Es soll nur mathematisch korretekt sein. Schaltjahre und sowas sind mir total egal weil das noch da mit einzubauen würde alles sprengen.

Löst TimeSpan.FromSeconds() das mit den Schaltjahren und so denn richtig?
Edit hat sich erledigt. TimeSpan kann keine Monate und Jahre anzeigen.

Es gfeht wie zuvor nur um den Codeschnipsel im Eingangspost. Belassen wir es einfach bei 30 Tagen. Es geht mir nur drum, ob das mit Modulo usw richtig ist.

Rollo62 28. Nov 2019 17:16

AW: Code von Zeitrechnung verbessern
 
Wenn es nur um Zeit geht kannst Du es ja mit 360 "Industrietagen" glattbügeln.
Wenn es aber mit der realen Zeit irgendwie in Zusammenhang stehen muss,
würde ich immer mit Startdatumzeit, Differenzzeit und Enddatumzeit rechnen.

So kann man die Differenz zw. Start-End bekommen, oder umgekehrt das Ende aus Startzeit + Differenzsekunden berechen.

Ist aber halt nicht einfach nur A + B, sondern eine Kombination aus den Datumsfunktionen,
je nachdem was genau Du erreichen möchtest.

DieDolly 28. Nov 2019 17:21

AW: Code von Zeitrechnung verbessern
 
Zitat:

würde ich immer mit Startdatumzeit, Differenzzeit und Enddatumzeit rechnen.
Diese Informationen gibt es nicht. Es gibt nur diese Sekunden.

Zitat:

je nachdem was genau Du erreichen möchtest.
Ich wollte eigentlich nur wissen, wie man den Code verbessert den ich eingangs erwähnt habe. Mehr nicht.
Dass man das jetzt auf 3 Seiten strecken muss, ist mir ein Rätsel.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz