Salve,
ho una stringa del genere 0,746171990740741 che corrispondono ai millisecondi trascorsi da un certo evento, come faccio ad averli in formato minuti, secondi, decimi e millessimi?
mi basta l'algoritmo, la traduzione in delphi la so fare.
Salve,
ho una stringa del genere 0,746171990740741 che corrispondono ai millisecondi trascorsi da un certo evento, come faccio ad averli in formato minuti, secondi, decimi e millessimi?
mi basta l'algoritmo, la traduzione in delphi la so fare.
In genere, credo che la parte decimale di un tempo venga espressa utilizzando una unità decimale fissa determinata in base al tipo di grandezza che deve essere misurata.
Mi spiego: supponiamo di dover misurare un tempo con molta precisione; in tal caso, opteremo per una scala in grado di visualizzare anche i millisecondi, poichè il valore da restituire deve essere preciso come da requisiti. Prendendo come esempio il numero che hai riportato, possiamo ritenere che siano trascorsi
0 minuti, 0 secondi, 746 millesimi di secondo.
Non vedo che senso ha scomporre i millesimi in decimi e centesimi, poichè il valore in millesimi indica già al suo interno entrambi i valori. Scomponendo, dovremmo dire
0 minuti, 0 secondi, 7 decimi, 4 centesimi, 6 millesimi
che equivale alla scrittura precedente (in termini quantitativi).
Concludendo, credo che tu debba inizialmente prefissare una precisione decimale per la tua misurazione temporale, decidendo se vuoi misurare solo i decimi o addirittura arrivare ai millisecondi; se opti per i millisecondi, esprimi la parte decimale indicando il valore per intero, come avviene nella prima forma di scrittura che ti ho riportato: è molto più leggibile, a mio avviso.
Per quanto riguarda la parte intera del valore, dovrai analogamente stabilire se la misurazione avviene in secondi, in minuti e secondi, oppure in ore, minuti e secondi. In questo caso, non si tratta di parti decimali, quindi dovrai dividere il valore dei secondi per 60 per trovare il numero di minuti trascorsi; successivamente, dividere di nuovo per 60 per ottenere il numero di ore trascorse.
Spero di essermi espresso con sufficiente chiarezza.
Ciao!
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
grazie alka ma avevo risolto e non l'ho comunitato sul forum.
purtroppo ho riflettuto poco sulla questione e ho commesso due errori:
1) in delphi l'ora è espressa come frazione di giorno non come millisecondi, quindi posso risalire a quello che mi serve...
2) se fosse stata in millisecondi, come mi hai fatto notare non posso scomporlo ulteriormente
grazie cmq.
Ciao,
effettivamente pensavo che il valore a tua disposizione fosse espresso in millisecondi e che non si trattasse di un valore TDateTime.
Confermo quello che hai detto: il tipo TDateTime è un derivato del tipo Double che esprime una data e un'ora attraverso le parti intera e decimale di cui è composto il valore stesso.
La parte intera rappresenta i giorni trascorsi dal 12/30/1899, mentre la parte decimale rappresenta la frazione trascorsa delle 24 ore complessive giornaliere.
Ciao!
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...