Avatar billede Slettet bruger
16. juli 2003 - 18:29 Der 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.

T2C
Avatar billede sion Nybegynder
17. juli 2003 - 15:12 #1
Hvis du bare vil have tiden i 24 timers formattet, så *mener* jeg at kode hedder:
24hTid = Format(Time,"hh:mm:ss TT")
Avatar billede Slettet bruger
17. juli 2003 - 17:43 #2
Hej Sion!
Det lyder næsten for nemt, men hvordan får jeg flettet det ind i den kode som jeg har skrevet?

T2C
Avatar billede mikker Nybegynder
17. juli 2003 - 20:24 #3
Hvad med dette:

temptime = Format(Time,"hh:mm:ss TT")
If Len(temptime) = 8 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, 6, 2)
End If


Dette er ikke testet og jeg er ikke sikker på hvad TT står for i den nævnte Format..

En anden løsning ville være blot at bruge følgende:

temptime = Format(MyTime, "hh:mm:ss AMPM") 

- Mikker
Avatar billede mikker Nybegynder
17. juli 2003 - 20:27 #4
temptime = Format(time, "hh:mm:ss AMPM") 
Virker ikke helt efter hensigten...
Avatar billede Slettet bruger
17. juli 2003 - 22:28 #5
Hmm nope det virker ikke men det var da godt forsøgt.

Jeg har ikke en anelse idé om hvad det er der går galt men fejlen bliver ved med at komme det samme sted:

crntminute = Mid(temptime, 3, 2)

T2C
Avatar billede sion Nybegynder
18. juli 2003 - 13:23 #6
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
Avatar billede mikker Nybegynder
18. juli 2003 - 18:18 #7
Det er klart. Prøv denne

crntminute = Mid(temptime, 4, 2)' fra tegn 4 og så 2 lang...
Du vil nok også få en fejl ved AMorPM, men den kan du jop selv rette :o)

- Mikker
Avatar billede mikker Nybegynder
18. juli 2003 - 18:29 #8
Det her burde være nok


temptime = Format(Time, "hh:mm:ss")
    crnthour = Mid(temptime, 1, 2)
    crntminute = Mid(temptime, 4, 2)
End Sub

- Mikker
Avatar billede mikker Nybegynder
18. juli 2003 - 18:32 #9
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
Avatar billede mikker Nybegynder
06. august 2003 - 15:36 #10
Gad vide om t2c er gået i sommer hi??? :o)

- Mikker
Avatar billede Slettet bruger
06. august 2003 - 15:42 #11
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging