Newsgroup: it.comp.lang.visual-basic
Titolo: Conversione di orari

Ciao a tutti.
Qualcuno ha per caso già pronte delle funzioni per la conversione delle ore?
In particolare:
da ##:## -> #,# es. 10:30 -> 10,5
e viceversa?
E' per non lavorare troppo...
--
[5pU6NA]
~~~~~~~~~~~~~~~~~~
ICQ # 302792624
mail: 
skate...@libero.it

prova cosě:
Function GetOreDecimali(ByVal ore As Long, ByVal minuti As Long) As Double
    GetOreDecimali = ore + minuti / 60
End Function
Sub GetOreEMinuti(ByVal oreDecimali As Double, ore As Long, minuti As Long)
    ore = Fix(oreDecimali)
    minuti = (oreDecimali - ore) * 60
End Sub

 e viceversa?
Ore * 24
Ciao

grazie provo.


 ha scritto nel messaggio
news:CLcga.15742$i26.3...@news2.tin.it...


 Potrà esserti utile anche la funzione Format.
in quale modo useresti il format?
anche per il viceversa?
--
Salutoni
Sergio

 anche per il viceversa?
Ho scritto "Potrà esserti utile". Quindi, gli ho posto la funzione Format,
in quanto lui stesso ha scritto "conversione delle ore".
tornando al problema, se proprio hai la necesità di lavorare con ore e
minuti, potresti utilizzare un'equazione, le suddividi in questo modo, cosi'
ne hai la piena padronanza:
ora butto giu' qualcosa di veloce.. se non ho capito male tu hai bisogno di
questa conversione
'inizio codice
    Dim str1, str2, pc, st
    Dim n As Integer, pc1 As Single
    'Prima conversione   10:30 -> 10,50
    st = "10:30"
    n = InStr(1, st, ":")                           'Cerco la posizione del
carattere ':'
    str1 = Left(st, n - 1)                          ' prendo la parte
precedente a ':'
    str2 = Mid(st, n + 1)                           ' prendo la parte
successiva a ':'
    pc = str1 & "," & (Int(Val(str2) * 100 / 60))    'Stringa Se vuoi anche
la seconda cifra decimale usa 100 al posto di 10
    pc1 = CSng(pc)                                  'Numerico Single
    MsgBox pc
    'Seconda conversione   10,50 -> 10:30
    st = "10,50"
    n = InStr(1, st, ",")                           'Cerco la posizione del
carattere ','
    str1 = Left(st, n - 1)                          ' prendo la parte
precedente a ','
    str2 = Mid(st, n + 1)                           ' prendo la parte
successiva a ','
    pc = str1 & ":" & (Int(Val(str2) * 6 / 10))     'Stringa
    MsgBox pc
' fine codice
Attenzione, non c'è alcun controllo per gli errori!
Ciao!
Andrea

 approssimativo) scrisse:
Carissimo andrea, l'intento del post era chiaramente polemico :-)
Posti affermando che il tasso tecnico del ng è scaduto in questi anni, e poi
invii un messaggio mal "quotato", laconico e fuori bersaglio (tant'è che nel
post successivo, dove affronti l'argomento con maggiore impegno l'istruzione
format non compare)
Era un invito a non "postare in libertà".
Saluti, sperando che non mi porterai rancore per questo.
--
Salutoni
Sergio

 Saluti, sperando che non mi porterai rancore per questo.
    Assolutamente... inoltre in futuro sicuramente mi aiuterai per qualche
dilemma.. quindi non mi conviene portar rancore! :-)))
A Presto!
Andrea.
P.S. Secondo te, c'è un metodo migliore e piu' puro per la conversione in se
stessa (quindi tralasciando l'opzione da me scelta, per avere padronanza dei
dati)?

 per avere padronanza dei dati)?
direi che mi piace molto il metodo Zanna. Forse in prima istanza può
sembrare oscuro, ma è assolutamente lineare e reversibile.
--
Salutoni
Sergio

Ringrazio Morpheus per la dritta.
Avevo adottato anche io un approccio come quello di andrea ma risulta troppo
macchinoso e ci sono troppe eccezioni.