16. juli 2003 - 18:29Der er
10 kommentarer og 1 løsning
Tidsproblem 24h vs PM o AM
Hej!
Jeg har fundet et fint VB program men det vil kun køre på min computer hvis jeg har engelsk tid på den.
Her er koden fra programmet:
Private Sub Timer1_Timer() Dim tmptype As String Dim tmpsubnam As String Dim tmpcomments As String Dim tmpmulti As String Dim tmpday As Integer Dim tmpmonth As Integer Dim tmpyear As Integer Dim tmphour As Integer Dim tmpminute As Integer Dim tmpdone As Boolean Dim AMorPM As String Dim crnthour As Integer Dim crntminute As Integer Dim temptime As String Dim i As Integer
'This timer checks for any remineder is there to show or not. 'It checks for all the reminders in the "Pending" state only
If rs.RecordCount = 0 Then Exit Sub
rs.MoveFirst
For i = 1 To rs.RecordCount ' Read all the records from database tmptype = rs("type") rmcodepop = tmptype tmpsubnam = rs("sub_or_name") tmpcomments = rs("com_or_desc") tmpmulti = rs("multi_info") tmpday = rs("alm_day") tmpmonth = rs("alm_month") tmpyear = rs("alm_year") tmphour = rs("alm_hour") tmpminute = rs("alm_minute") tmpdone = rs("alm_done")
If tmpdone = False Then ' if reminder is in the "Pending" state
'get current system time and break in hour and minute as 24 hour format
temptime = Time 'this is done because if time can be of length 11 or 10 ' e.g. "11:35:25 AM" and "1:20:50 PM" 'so in both the cases we have to get the hour and minute differently If Len(temptime) = 11 Then crnthour = Mid(temptime, 1, 2) crntminute = Mid(temptime, 4, 2) AMorPM = Mid(temptime, 10, 2) Else crnthour = Mid(temptime, 1, 1) crntminute = Mid(temptime, 3, 2) AMorPM = Mid(temptime, 9, 2) End If
'Convert to 24 hour format If AMorPM = "PM" And crnthour <> 12 Then crnthour = crnthour + 12 If AMorPM = "AM" And crnthour = 12 Then crnthour = 0
' Check if this record is due for popup or not i.e. ' Its time and date is less than the current time and date or not If (Year(Now) > tmpyear) Or ((Year(Now) = tmpyear) And (Month(Now) > tmpmonth)) Or _ ((Year(Now) = tmpyear) And (Month(Now) = tmpmonth) And (Day(Now) > tmpday)) Or _ ((Year(Now) = tmpyear) And (Month(Now) = tmpmonth) And (Day(Now) = tmpday) And (crnthour > tmphour)) Or _ ((Year(Now) = tmpyear) And (Month(Now) = tmpmonth) And (Day(Now) = tmpday) And (crnthour = tmphour) And (crntminute >= tmpminute)) Then 'Timer1.Enabled = False fillpopup ' fill the popup form PopUP.Show ' show popup form
Exit Sub End If End If rs.MoveNext ' read next record Next i
End Sub
Jeg håber der er en der kan hjælpe med at lave den om til 24h format.
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Hej T2C, du må undskylde min kommentar, men jeg havde ikke tiden til at teste koden men mente at det var sådan syntaksen var. Dog var koden ikke helt rigtig, men ser ud som følger:
Format(Time, "hh:mm:ss AM/PM")
Skriv hvis du er i tvivl om noget, eller hvis du skal have hjælp med at flette det ind i din kodestump (hvis det er tilfældet, så skriv lige hvad formålet med koden er ;)) -Sion
temptime = Format(Time, "hh:mm:ss AM/PM") 'this is done because if time can be of length 11 or 10 ' e.g. "11:35:25 AM" and "1:20:50 PM" 'so in both the cases we have to get the hour and minute differently If Len(temptime) = 11 Then crnthour = Mid(temptime, 1, 2) crntminute = Mid(temptime, 4, 2) AMorPM = Mid(temptime, 10, 2) Else crnthour = Mid(temptime, 1, 1) crntminute = Mid(temptime, 3, 2) AMorPM = Mid(temptime, 9, 2) End If
Ovenstående burde også virke nu. Held og lykke :o) - Mikker
Mikker>>>Sorry, nej jeg lever i bedste velgående om sommeren og du skal have tak for hjælpen.
Det virker det du skrev i den sidste løsning. Jeg har givet 40 x-tra points for ventetid!
Sorry
T2C
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.