Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [DELPHI] Time

  1. #1

    [DELPHI] Time

    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.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Ore, minuti e secondi...

    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...

  3. #3
    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.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    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...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.