Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

convertire millisecondi in ore minuti e secondi

979 views
Skip to first unread message

tmtube

unread,
Dec 7, 2013, 5:32:53 AM12/7/13
to
dato un numero di millisecondi come si possono convertire in ore.minuti e
secondi?

grazie.

vittorio

unread,
Dec 7, 2013, 7:07:31 AM12/7/13
to

"tmtube" <tmtu...@gmail.com> ha scritto nel messaggio
news:52a2f958$0$23121$4faf...@reader2.news.tin.it...
> dato un numero di millisecondi come si possono convertire in ore.minuti e
> secondi?


se MillTime sono i Millisecondi :

Sec = (MillTime \ 1000) mod 60
Min = (Sec \ 60) Mod 60
Hrs = (Min \ 60) Mod 24
dMillTime = TimeSerial(Hrs, Min, Sec)

per riconvertire in millisecondi:
MillTime = 1000 * DatePart("s", dMillTime) + 60000 * DatePart("n",
dMillTime) + 3600000 * DatePart("h", dMillTime)


salclem2

unread,
Dec 7, 2013, 8:20:29 AM12/7/13
to

"vittorio" <a...@aworrrnder.pp> ha scritto nel messaggio
news:52a30f84$0$23119$4faf...@reader2.news.tin.it...
> se MillTime sono i Millisecondi :
>
> Sec = (MillTime \ 1000) mod 60
> Min = (Sec \ 60) Mod 60
> Hrs = (Min \ 60) Mod 24
> dMillTime = TimeSerial(Hrs, Min, Sec)
>
> per riconvertire in millisecondi:
> MillTime = 1000 * DatePart("s", dMillTime) + 60000 * DatePart("n", dMillTime) + 3600000
> * DatePart("h", dMillTime)
>

Non mi sembra giusto, se Sec=0, questa formula porta tutto a 0
io direi:
Hrs= Fix(MillTime/1000/60/60)
Min= Fix(60*((MillTime/1000/60/60) - Fix(MillTime/1000/60/60)))
Sec= 60*(60*((MillTime/1000/60/60) - Fix(MillTime/1000/60/60))-Min)

vittorio

unread,
Dec 7, 2013, 12:38:47 PM12/7/13
to

"salclem2" <salc...@yahoo.it> ha scritto nel messaggio
news:l7v7b5$a5g$1...@speranza.aioe.org...
>
> "vittorio" <a...@aworrrnder.pp> ha scritto nel messaggio
> news:52a30f84$0$23119$4faf...@reader2.news.tin.it...
>> se MillTime sono i Millisecondi :
>>
>> Sec = (MillTime \ 1000) mod 60
>> Min = (Sec \ 60) Mod 60
>> Hrs = (Min \ 60) Mod 24
>> dMillTime = TimeSerial(Hrs, Min, Sec)
>>
>> per riconvertire in millisecondi:
>> MillTime = 1000 * DatePart("s", dMillTime) + 60000 * DatePart("n",
>> dMillTime) + 3600000 * DatePart("h", dMillTime)
>>
>
> Non mi sembra giusto, se Sec=0, questa formula porta tutto a 0

infatti Sec � zero se i millisecondi sono zero.


tmtube

unread,
Dec 7, 2013, 1:18:06 PM12/7/13
to
> Non mi sembra giusto, se Sec=0, questa formula porta tutto a 0

>infatti Sec � zero se i millisecondi sono zero.

danke!!

salclem2

unread,
Dec 7, 2013, 6:13:55 PM12/7/13
to

"vittorio" <a...@aworrrnder.pp> ha scritto nel messaggio
news:52a35d29$0$23121$4faf...@reader2.news.tin.it...
>
> infatti Sec � zero se i millisecondi sono zero.
>
per un'ora abbiamo 3600000 millisecondi,
e in questo caso abbiamo
Hrs= 1
Min= 0
Sec= 0

Con la tua formula invece sarebbe tutto zero!
Stavolta hai capito?

Paperino

unread,
Dec 7, 2013, 6:55:32 PM12/7/13
to
salclem2 ha scritto:
> "vittorio" ha scritto
>> infatti Sec ᅵ zero se i millisecondi sono zero.
> per un'ora abbiamo 3600000 millisecondi,
> e in questo caso abbiamo
> Hrs= 1
> Min= 0
> Sec= 0
> Con la tua formula invece sarebbe tutto zero!
> Stavolta hai capito?

Un calcolo del genere va effettuato al contrario.
Se non ho toppato qualcosa:

'****************
Dim Millisecondi As Long
Dim Ore As Long
Dim Minuti As Long
Dim Secondi As Long
Millisecondi = 3679873

Ore = Millisecondi \ 3600000
Debug.Print "Ore: " & Ore
Millisecondi = Millisecondi Mod 3600000
Minuti = Millisecondi \ 60000
Debug.Print "Minuti: " & Minuti
Millisecondi = Millisecondi Mod 60000
Secondi = Millisecondi \ 1000
Debug.Print "Secondi: " & Secondi
Millisecondi = Millisecondi Mod 1000
Debug.Print "Millisecondi residui: " & Millisecondi

'****************

Bye, G.

salclem2

unread,
Dec 7, 2013, 7:13:14 PM12/7/13
to

"Paperino" <non...@lo.dico.invalid> ha scritto nel messaggio
news:l80chm$7ho$1...@dont-email.me...
> Un calcolo del genere va effettuato al contrario.
> Se non ho toppato qualcosa:
>
> '****************
> Dim Millisecondi As Long
> Dim Ore As Long
> Dim Minuti As Long
> Dim Secondi As Long <-------------------------- as single
> Millisecondi = 3679873
>
> Ore = Millisecondi \ 3600000
> Debug.Print "Ore: " & Ore
> Millisecondi = Millisecondi Mod 3600000
> Minuti = Millisecondi \ 60000
> Debug.Print "Minuti: " & Minuti
> Millisecondi = Millisecondi Mod 60000
> Secondi = Millisecondi \ 1000
> Debug.Print "Secondi: " & Secondi
> Millisecondi = Millisecondi Mod 1000
> Debug.Print "Millisecondi residui: " & Millisecondi
>

Cosᅵ va bene, ma se dichiari secondi come single fai prima,
e ti va a pennello anche la mia formula.

vbMizio

unread,
Dec 9, 2013, 4:27:42 AM12/9/13
to
Parliamo di VB6 o VB.Net?
Se sei in net, puoi usare il metodo AddMilliSeconds del tipo Date.
Una cosa del genere:
Dim ms As Integer = 350000
Dim dt As Date = New Date().AddMilliseconds(ms)
Debug.Print(dt.ToLongTimeString)

Come vedi ho valorizzato una variabile ms (i millisecondi) assegnandoli un
valore che mi piaceva :)
Poi ho usato il metodo AddMilliSeconds esposto dal tipo Date ed ho ottenuto
una nuova data.
A questo punto posso usare la nuova data e, ad esempio, stamparmi l'orario.

tmtube

unread,
Dec 10, 2013, 6:55:27 PM12/10/13
to
"salclem2" ha scritto nel messaggio news:l7v7b5$a5g$1...@speranza.aioe.org...
ho provato questo codice ma il risultato lo ha messo in secondi anzich� in
minuti secondo voi dov'� l'errore?
cio� mi aspettavo 27 minuti stimati invece a scritto 00:00:27 cio� secondi

questo � il codice usato

Dim MillTime
Dim sec
Dim min
Dim hrs

MillTime = (2500 + DLookup("massivedelay", "aziendali")) * Me.dainviare
sec = (MillTime \ 1000) Mod 60
min = (sec \ 60) Mod 60
hrs = (min \ 60) Mod 24
Me.TEMPOSTIMATO = TimeSerial(hrs, min, sec)



tmtube

unread,
Dec 10, 2013, 7:06:55 PM12/10/13
to
>Minuti = Millisecondi \ 60000
>Debug.Print "Minuti: " & Minuti
>Millisecondi = Millisecondi Mod 60000
>Secondi = Millisecondi \ 1000
>Debug.Print "Secondi: " & Secondi
>Millisecondi = Millisecondi Mod 1000
>Debug.Print "Millisecondi residui: " & Millisecondi

>'****************

>Bye, G.

Confermo ho usato questo codice e funziona grazie.


Federico

unread,
Dec 10, 2013, 8:02:53 PM12/10/13
to
Usa questo e non ci pensi pi�,
� la routine di Paperino ottimizzata
e pronta all'uso

Private Sub Form_Load()
Millisecondi = 3679873
Debug.Print DateFormat(Millisecondi)
End Sub
Public Function FormattaOra(ByVal Millisecondi As Single) As String
Dim Ore As String, Minuti As String, Secondi As String
Ore = Format(Millisecondi \ 3600000, "00")
Millisecondi = Millisecondi Mod 3600000
Minuti = Format(Millisecondi \ 60000, "00")
Millisecondi = Millisecondi Mod 60000
Secondi = Format(Millisecondi \ 1000, "00")
DateFormat = Ore & "." & Minuti & "." & Secondi
End Function

Oggi mi sento buono

Federico

unread,
Dec 10, 2013, 8:05:25 PM12/10/13
to
Ho dovuto fare una correzione...

Private Sub Form_Load()
Millisecondi = 0
Debug.Print FormattaOra(Millisecondi)
End Sub
Public Function FormattaOra(ByVal Millisecondi As Single) As String
Dim Ore As String, Minuti As String, Secondi As String
Ore = Format(Millisecondi \ 3600000, "00")
Millisecondi = Millisecondi Mod 3600000
Minuti = Format(Millisecondi \ 60000, "00")
Millisecondi = Millisecondi Mod 60000
Secondi = Format(Millisecondi \ 1000, "00")
' Millisecondi = Millisecondi Mod 1000
FormattaOra = Ore & "." & Minuti & "." & Secondi
End Function
0 new messages