Quello che vorrei fare è un form, con due campi ed una label. A fianco ad ogni campo un pulsate che setta al momento attuale il valore del .text e un pulsante che setti la label come differenza del prima e del dopo.
Semplice no?
E invece no. Perchè nel caso la differenza superi le 24 si sballa tutto. ho provato un po' in tutti i modi anche con artifizi filosofici, ma niente questo è il risultato se vuoi darci un occhio...
codice:
Function Calc(Adesso, Dopo)
Dim Inizio, Fine, Altro As Integer
Inizio = Format$(Adesso, "yyyymmddhhmmss")
Fine = Format$(Dopo, "yyyymmddhhmmss")
Dim intOre As Integer
Dim intMin As Integer
Dim intSec As Integer
If Mid(Fine, 7, 2) > Mid(Inizio, 7, 2) Then
intOre = (Mid(Fine, 7, 2) - Mid(Inizio, 7, 2)) * 24
End If
intOre = intOre + Mid(Fine, 9, 2) - Mid(Inizio, 9, 2)
If Mid(Fine, 9, 2) < Mid(Inizio, 9, 2) Then
intMin = 60
End If
intMin = intMin + Mid(Fine, 11, 2) - Mid(Inizio, 11, 2)
If intMin = 60 Then intMin = 0
intSec = Mid(Fine, 13, 2) - Mid(Inizio, 13, 2)
Calc = intOre & ":" & intMin & ":" & intSec
End Function
Private Sub cmdCalc_Click()
Dim Inizio, Fine As String
Inizio = txtNow.Text
Fine = txtThen.Text
lblCalc.Caption = Calc(Inizio, Fine)
End Sub
Private Sub cmdNow_Click()
txtNow.Text = Now
End Sub
Private Sub cmdThen_Click()
txtThen.Text = Now
End Sub
Public Sub cdmTimer1_Click()
Dim datTimer1 As Date
txtTimer1.Text = datTimer1
End Sub
Public Sub cmdTimer2_Click()
Dim datTimer2 As Date
txtTimer2.Text = datTimer2
End Sub
Private Sub cmdDiff_Click()
Dim intDDiff As Integer
intDDiff = DateDiff("d", datTimer2, datTimer1)
lblDiff.Caption = intDDiff
End Sub
Anche se penso di abbandonare la strada che scompone i dati, cosa dici?