E ka shpjeguar drejt Agroni, jane klecka te funksionit Format...
Edhe dicka: Kur ne Text2 ti fut nje numer, bie fjala numrin 2, me mendimin se po fut numrin e oreve per te shtuar, kodi nuk ka ndonje logjike eksplicite per ta kuptuar qe eshte ore. Prandaj, merr funksionin FORMAT, dhe para se te shtosh kohet, formato kutizen Text2 si me poshte:
Kodi:
If count = 0 Then ' nuk ka ':'
Text2.Text = Text2.Text & ":00:00"
ElseIf count = 1 Then ' u gjet nje ':'
Text2.Text = Format(Text2.Text, "hh:mm") & ":00"
Else
Text2.Text = Format(Text2.Text, "hh:mm:ss")
End If
Nese ti fut vleren '2' ne kutizen Text2, atehere pjesa e pare e IF-it te mesiperm do ta konsideroje si ore. Nese ti fut '2:1', atehere pjesa tjeter e IF-it do ta ktheje ne '02:01:00' fale funksionit FORMAT. Po te fusesh '2:2:2', kjo do te konsiderohet si '02:02:02'. Ne kete menyre, ti shmang cdo lloj keqkuptimi dhe gabimi ne percaktimin e kohes. Edhe nje here tjeter kodi i tere per eventin Command1_Click:
Kodi:
Private Sub Command1_Click()
Dim hr As Integer, min As Integer, sek As Integer, temp As Integer
Dim count As Integer, i As Integer, strTemp As String
count = 0: i = 1
strTemp = Text2.Text
While (i < Len(strTemp) And i <> 0)
i = InStr(i, Text2.Text, ":")
Text2.Text = Mid$(Text2.Text, i + 1, Len(Text2.Text) - i)
count = count + 1
Wend
Text2.Text = strTemp
If count = 0 Then ' nuk ka ':'
Text2.Text = Text2.Text & ":00:00"
ElseIf count = 1 Then ' u gjet nje ':'
Text2.Text = Format(Text2.Text, "hh:mm") & ":00"
Else
Text2.Text = Format(Text2.Text, "hh:mm:ss")
End If
' merr vleren e kohes nga kutiza Text1.Text:
hr = 0: min = 0: sek = 0
hr = DatePart("h", CDate(Text1.Text))
min = DatePart("n", CDate(Text1.Text))
sek = DatePart("s", CDate(Text1.Text))
' Shto vlerat nje nga nje:
sek = (sek + CInt(DatePart("s", CDate(Text2.Text)))) ' shto sekondat
If sek > 59 Then
temp = sek Mod 60
min = min + sek \ 60 ' shenim: '\' tregon pjesetim te plote (integer)
sek = temp
End If
min = (min + CInt(DatePart("n", CDate(Text2.Text)))) ' shto minutat
If min > 59 Then
temp = min Mod 60
hr = hr + min \ 60
min = temp
End If
hr = (hr + CInt(DatePart("h", CDate(Text2.Text)))) Mod 24
' Paraqit oren e re:
Text3.Text = Format(hr, "00") & ":" & Format(min, "00") & ":" & Format(sek, "00")
End Sub
Krijoni Kontakt