String/int

venerdì 28 aprile 2006 - 15.23

kiara83 Profilo | Junior Member

Ho La mia stringa "hh:mm:ss" e la voglio convertire in intero in questo modo:
(primi due char)*60*60*1000+(secondi 2 char)*60*1000+(ultimi 2 char)*1000; in poche parole li voglio in millesimi di secondo.
Quello che non so come fare è leggere ad esempio i primi due char come un numero

Ciciu Profilo | Senior Member

>Ho La mia stringa "hh:mm:ss" e la voglio convertire in intero
>in questo modo:
>(primi due char)*60*60*1000+(secondi 2 char)*60*1000+(ultimi
>2 char)*1000; in poche parole li voglio in millesimi di secondo.
>Quello che non so come fare è leggere ad esempio i primi due
>char come un numero

Ciao.
Quello che puoi fare è qualcosa del genere :

string tStr = "12:33:45";
int ore = Convert.ToInt32(tStr.Substring(0, 2));
int minuti = Convert.ToInt32(tStr.Substring(3, 2));
int secondi = Convert.ToInt32(tStr.Substring(6, 2));

Ottenute queste variabili puoi banalmente moltiplicarle tra loro...
Ciao - Fabio
Fabio G

alx_81 Profilo | Guru

Usa il metodo substring della stringa..

Ad esempio (VB.net)

Dim miaString as String = "15:30:59"

Dim hh,mm,ss as Int32

hh = Int32.Parse(miaString.Substring(0,2)) * 60 * 60 * 1000
mm = Int32.Parse(miaString.Substring(3,2)) * 60 * 1000
ss = Int32.Parse(miaString.Substring(6,2)) * 1000

ciao!
----------------------------------------------------------------------------------
Altro consiglio.. puoi usare il TimeSpan

una volta ricavati solo le hh,mm,ss:

hh = Int32.Parse(miaString.Substring(0, 2))
mm = Int32.Parse(miaString.Substring(3, 2))
ss = Int32.Parse(miaString.Substring(6, 2))

Puoi istanziare un TimeSpan

Dim TS as new TimeSpan(hh,mm,ss)

Poi la proprietà TotalMillisecond ti da il numero di millesimi di secondi totali

Msgbox(TS.TotalMilliseconds)

Alx81 =)

http://blogs.dotnethell.it/suxstellino

Cteniza Profilo | Guru

Il metodo più sicuro (nessuno ti garantisce la lunghezza della stringa) è usare il metodo split.
Esempio:
string orario = "10:20:3000";
string[] s = orario.Split(":");
int secondi = int.Parse(s[0] * 60 * 60) + int.Parse(s[1]) * 60 + int.Parse(s[2] / 1000);
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5