Delphi-PRAXiS
Seite 3 von 3     123   

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)

Luckie 28. Nov 2019 17:42

AW: Code von Zeitrechnung verbessern
 
Weil man nicht weiß, wie du ihn verbessern willst und jegliche Verbesserung ihn sehr komplex machen würde. Die einfachen Verbesserungen lehnst du ja ab.

DieDolly 28. Nov 2019 17:46

AW: Code von Zeitrechnung verbessern
 
Dann nochmal ganz klar damit jeder es versteht. Ob 30 tage, Schaltjahr oder 31 Tage ist total egal.

Es geht nur da drum den bestehenden Code zu verbessern. Ich weiß nicht, ob das zu kompliziert ist wie ich die Monate, Tage und so mit Modulo ausrechne.

Hobbycoder 28. Nov 2019 21:12

AW: Code von Zeitrechnung verbessern
 
Da, außer bei den Monaten, alles in der Zeitdarstellung nunmal in festen Grenzen gehalten ist, du aber eben diese Monate mit fest 30 Tagen annehmen willst, wird nicht wirklich klar was du daran noch verbessern willst.

Einzig die Genauigkeit wenn man exakte Monatslängen verwenden würde, oder vielleicht die Geschwindigkeit wenn man das ganze in Assembler umsetzen würde.

hoika 28. Nov 2019 21:12

AW: Code von Zeitrechnung verbessern
 
Hallo,
das Strecken auf 3 (4) Seiten hast du selbst erreicht...,
indem du keine genauen Angaben machst, was Du konkret erreichen willst.
Bzw. wo Du eventuelle Fehler siehst.

Bsp:
LMonths := LDays div 30;

Anzahl der Monate ergibt mit Tage div 30 doch total ungenaue Monate.
Wir schreiben "ist problematisch", Du schreibst "ist egal, wir lassen das div 30"
und wunderst dich dann über Fragen dazu?


Bitte einmal kurz und knapp (wie früher im Mathe-Unterricht ;) )
Was konkret ist Dein Problem mit dem Code aus Posting #1.

gegeben (geg.:)
gesucht (ges.:)

Hach, die gute alte Schulzeit ;)

DieDolly 28. Nov 2019 21:21

AW: Code von Zeitrechnung verbessern
 
Zitat:

Bitte einmal kurz und knapp
Der Code funktioniert.
Ein Problem gibt es nicht.
Ich möchte den Code nur optimieren. Das heißt eventuell kürzen, unnötige und falsche Rechenoperationen entfernen.

Michael II 28. Nov 2019 21:23

AW: Code von Zeitrechnung verbessern
 
Zitat:

Zitat von DieDolly (Beitrag 1452410)
Dann nochmal ganz klar damit jeder es versteht. Ob 30 tage, Schaltjahr oder 31 Tage ist total egal.

Es geht nur da drum den bestehenden Code zu verbessern. Ich weiß nicht, ob das zu kompliziert ist wie ich die Monate, Tage und so mit Modulo ausrechne.

Du möchtest eine Zeitdauer, welche in Sekunden bekannt ist in ein für uns Menschen lesbareres Format umwandeln.

Du kannst nicht einerseits schreiben, dass es dir total egal sei wie lang die Monate seien und andererseits fordern, dass die ganze Sache mathematisch korrekt sei. Beides aufs Mal geht schlicht nicht (log. Widerspruch).

Ohne Probleme korrekt umwandeln kannst du

f: Sekunden ¦-> Tage, Stunden, Minuten, Sekunden

Es macht keinen Sinn die Tage weiter in Monate und Jahre aufzuteilen, weil Monate/Jahre nicht alle gleich viele Tage haben.

Du möchtest ja sicher, dass die Umkehrfunktion
f^(-1): "lesbareres Format" ¦-> Sekunden
definiert ist; d.h. dass die Anzahl Sekunden berechenbar sind.

Das ist mit
f^(-1): Tage, Stunden, Minuten, Sekunden ¦-> Sekunden
gegeben.

Aus einer Angabe
Jahre, Monate, Tage, Stunden, Minuten, Sekunden
hingegen ist es nicht möglich die Sekunden zu berechnen.

_______________________________________

Nur wenn du die Anzahl Sekunden seit einem gewissen Datum als Angabe hättest - beispielsweise 9'002'934 Sekunden seit dem 1.1.2019 0h00m00s - machte die Angabe j Jahre, mo Monate, t Tage, h Stunden, m Minuten, s Sekunden seit 1.1.2019 Sinn. Denn du könntest aus (j,mo,t,h,m,s) wieder auf s schliessen.

DieDolly 28. Nov 2019 21:50

AW: Code von Zeitrechnung verbessern
 
Lassen wir das. Ich renne hier wohl gegen eine Wand.
Keine weiteren Vorschläge mehr. Bringt ja eh nix wenn ich sage "Ist egal ob 30 Tage oder 31!"

Jumpy 29. Nov 2019 07:34

AW: Code von Zeitrechnung verbessern
 
In der jetzigen Form geshst du ja davon aus, dass die Monate 30 Tage haben und somit das Jahr 360 Tage. Ggf. kannst du minmal genauer werden, wenn du aus der Anzahl der Tage/365 zunächst die Jahre berechnest und dann aus dem Rest der Tage die Monate usw.?

Problem dabei: Ist der Rest >= 360 Tage, und du teilst das durch 30 für die Monate können da 12 oder 13 rauskommen. Ist also fraglich ob das hilft.

Oder du rechnest mit genaueren Durschnittswerten für Monate und Jahre und benutzt dann halt nicht div/mod sondern machst das zu Fuß, weil du da ja keine Integer Werte mehr hast:

Delphi-Quellcode:
Jahre:=Trunc(Tage/365.2425);
Resttage:=Tage-Jahre*365.2425;
Monate:=Resttage/(365.2425/12);
Resttage:=Resttage-Monate*(365.2425/12);

Sherlock 29. Nov 2019 08:45

AW: Code von Zeitrechnung verbessern
 
Es ist nunmal mathematisch eben nicht korrekt "31=30" zu sagen. Aber eine mathematische Korrektheit und genauso einen Ausschluß von Fehlern hast Du Dir selbst gewünscht. So kommt man auf 4 und voraussichtlich mehr Seiten.

:lol:

Sherlock

OlafSt 29. Nov 2019 09:41

AW: Code von Zeitrechnung verbessern
 
Leute, gebt ihm doch endlich die Antwort, die er will:

Lass den Code so, besser geht es nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 Uhr.
Seite 3 von 3     123   

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