Differenze tra le versioni di "Convertire i secondi in formato ore:minuti:secondi"
Riga 1: | Riga 1: | ||
− | Il caso è quello in cui, avendo un valore che | + | Il caso è quello in cui, avendo un valore che rappresenta i ''secondi'', si vuole ottenere una conversione nel formato stringa ''ore:minuti:secondi''. <SUP>[[[#Note|Nota 1]]]</sup> |
+ | |||
+ | |||
+ | ==Uso della funzione ''Date( )''== | ||
+ | Come è noto, la funzione ''Date( )'' restituisce un valore temporale di tipo ''Date'' dai dati passati ad uno o più dei suoi parametri. In particolare, nel caso considerato da questa pagina, se i secondi sono superiori al valore "60", bisognerà passare il loro valore all'ultimo parametro della funzione ''Date( )'', quello dei millisecondi ovviamnete moltiplicando detto valore per mille. | ||
+ | <BR>Il risultato va opportunamente convertito in stringa mediante la funzione ''Str( )''. | ||
+ | |||
+ | Esempio pratico: | ||
+ | '''Public''' Sub Main() | ||
+ | |||
+ | Dim secondi As Integer | ||
+ | Dim s As String | ||
+ | |||
+ | secondi = 12345 | ||
+ | |||
+ | s = Str(Date(0, 0, 0, 0, 0, 0, secondi * 1000)) | ||
+ | |||
+ | Print s | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | ==Uso della funzione ''Format( )''== | ||
+ | Quest'altra modalità prevede l'uso della funzione ''Format( )''. | ||
+ | <BR>Nel secondo parametro di tale funzione va specificato il formato desiderato della rappresentazione oraria, come ad esempio "''hh:nn:ss''". | ||
+ | |||
La sintassi è la seguente: | La sintassi è la seguente: | ||
Format(Time(''ore'', ''minuti'', ''secondi'')), "hh:nn:ss") As String | Format(Time(''ore'', ''minuti'', ''secondi'')), "hh:nn:ss") As String | ||
− | |||
− | |||
Nel seguente esempio verranno mostrati i secondi passati dall'apertura del programma alla pressione sul ''Button'': | Nel seguente esempio verranno mostrati i secondi passati dall'apertura del programma alla pressione sul ''Button'': | ||
'''Private''' dt1 As Date | '''Private''' dt1 As Date | ||
Riga 22: | Riga 45: | ||
dt2 = Time(Now) | dt2 = Time(Now) | ||
− | <FONT color= | + | <FONT color=gray>' ''Viene calcolata la differenza fra i due tempi e viene espressa in secondi;'' |
' ''poi quel risultato viene convertito nel formato stringa impostato:''</font> | ' ''poi quel risultato viene convertito nel formato stringa impostato:''</font> | ||
Print Format(Time(0, 0, DateDiff(dt1, dt2, gb.Second)), "hh:nn:ss") | Print Format(Time(0, 0, DateDiff(dt1, dt2, gb.Second)), "hh:nn:ss") | ||
'''End''' | '''End''' | ||
+ | |||
+ | |||
+ | ==Uso dell'operatore ''Mod''== | ||
+ | Con l'operatore ''[http://gambaswiki.org/wiki/lang/mod?l=it Mod]'' è possibile convertire i secondi in ''ore'', ''minuti'' e restanti ''secondi''. | ||
+ | |||
+ | |||
+ | Mostriamo un esempio: | ||
+ | '''Public''' Sub Main() | ||
+ | |||
+ | Dim ore, minuti, secondi As Integer | ||
+ | |||
+ | secondi = 12345 | ||
+ | |||
+ | ore = secondi / 3600 | ||
+ | minuti = (secondi Mod 3600) / 60 | ||
+ | secondi = (secondi Mod 3600) Mod 60 | ||
+ | |||
+ | Print ore; ":"; minuti; ":"; secondi | ||
+ | |||
+ | '''End''' | ||
+ | |||
Versione delle 15:49, 19 gen 2017
Il caso è quello in cui, avendo un valore che rappresenta i secondi, si vuole ottenere una conversione nel formato stringa ore:minuti:secondi. [Nota 1]
Uso della funzione Date( )
Come è noto, la funzione Date( ) restituisce un valore temporale di tipo Date dai dati passati ad uno o più dei suoi parametri. In particolare, nel caso considerato da questa pagina, se i secondi sono superiori al valore "60", bisognerà passare il loro valore all'ultimo parametro della funzione Date( ), quello dei millisecondi ovviamnete moltiplicando detto valore per mille.
Il risultato va opportunamente convertito in stringa mediante la funzione Str( ).
Esempio pratico:
Public Sub Main() Dim secondi As Integer Dim s As String secondi = 12345 s = Str(Date(0, 0, 0, 0, 0, 0, secondi * 1000)) Print s End
Uso della funzione Format( )
Quest'altra modalità prevede l'uso della funzione Format( ).
Nel secondo parametro di tale funzione va specificato il formato desiderato della rappresentazione oraria, come ad esempio "hh:nn:ss".
La sintassi è la seguente:
Format(Time(ore, minuti, secondi)), "hh:nn:ss") As String
Nel seguente esempio verranno mostrati i secondi passati dall'apertura del programma alla pressione sul Button:
Private dt1 As Date Public Sub Form_Open() dt1 = Time(Now) End Public Sub Button1_Click() Dim dt2 As Date dt2 = Time(Now) ' Viene calcolata la differenza fra i due tempi e viene espressa in secondi; ' poi quel risultato viene convertito nel formato stringa impostato: Print Format(Time(0, 0, DateDiff(dt1, dt2, gb.Second)), "hh:nn:ss") End
Uso dell'operatore Mod
Con l'operatore Mod è possibile convertire i secondi in ore, minuti e restanti secondi.
Mostriamo un esempio:
Public Sub Main() Dim ore, minuti, secondi As Integer secondi = 12345 ore = secondi / 3600 minuti = (secondi Mod 3600) / 60 secondi = (secondi Mod 3600) Mod 60 Print ore; ":"; minuti; ":"; secondi End
Note
[1] Ovviamente si potrà ottenere anche il formato stringa: ore/minuti/secondi.