Avatar billede jelle Nybegynder
20. maj 2005 - 14:29 Der er 10 kommentarer og
1 løsning

Antal timer mellem 2 klokkeslæt

Hej!
Jeg har 2 textboxe, den indtaster jeg et starttidspunkt, f.eks. 20.30 og i den anden indtaster jeg et sluttidspunkt, f.eks 03.00

Hvordan finder jeg ud af hvor mange timer og minutter der er i mellem, så jeg helst kan få det ud i label1 som: "x timer og x minutter"

På forhånd tak for hjælpen
Avatar billede medions Nybegynder
20. maj 2005 - 14:33 #1
DateDiff("h", strTid1, strTid2)

så får du antal timer

//>Rune
Avatar billede medions Nybegynder
20. maj 2005 - 14:34 #2
Men ellers brug denne funktion;

<%
time1 = "09:15"
time2 = "17:30"

' minutes = datediff("n",time1,time2) ' in minutes
' response.write(hours)

hour1 = hour(time1)
hour2 = hour(time2)

minutes1 = "00:" & minute(time1)
minutes2 = "00:" & minute(time2)

hoursDiff = datediff("h", time1, time2)
minutesDiff = datediff("n", minutes1, minutes2)

If minutesDiff > -1 Then

' positive hour difference
timeDiff = hoursDiff & "hrs " & minutesDiff & "mins"

Else
' negative hour difference
hoursDiff = hoursDiff - 1
minutesDiff = 60 + minutesDiff

timeDiff = hoursDiff & "hrs " & minutesDiff & "mins"

End If

Response.Write timeDiff
%>

//>Rune
Avatar billede medions Nybegynder
20. maj 2005 - 14:34 #3
Du kan også gøre den mindre:

Const time1 = "09:15"
Const time2 = "17:30"
Dim hours, mins
hours = datediff("h",time1,time2)
mins = datediff("n",time1,time2)
If mins > 60 Then mins = mins - hours * 60
Response.Write hours & ":" & mins

Og sådan kan vi blive ved ;-)

//>Rune
Avatar billede jelle Nybegynder
20. maj 2005 - 14:35 #4
ja men hvis jeg skriver 22.00 i start og 03.00 i slut, så får jeg et resultat der hedder -9, og det går jo ikke helt :D
Avatar billede medions Nybegynder
20. maj 2005 - 14:36 #5
Sorry, det er jo VB :)

Const time1 = "09:15"
Const time2 = "17:30"
Dim hours As Integer
Dim mins As Integer
hours = datediff("h",time1,time2)
mins = datediff("n",time1,time2)
If mins > 60 Then mins = mins - hours * 60
MsgBox(hours & ":" & mins)

Kan sq ik' helt huske VB, sorry :)

//>Rune
Avatar billede medions Nybegynder
20. maj 2005 - 14:37 #6
Der er også en gut der har lavet et eksempel her:

http://www.vbforums.com/showthread.php?threadid=245515

//>Rune
Avatar billede jelle Nybegynder
20. maj 2005 - 14:41 #7
der bliver bare et problem når man køre med 24timer i stedet for 12 timer, for så snart du kommer over kl 00.00, så får du en negativ værdig...
Avatar billede sjh Nybegynder
20. maj 2005 - 17:34 #8
jelle > Du skal da også have dato med.. ellers kan computer jo ikke vide at det er mellem 2 datoer..

'----------------------------- Form1 -----------------------------
Option Explicit

Private Sub Form_Load()
Dim intSek As Long
  intSek = DateDiff("s", "20-05-2005 22:00", "21-05-2005 03:00")
  Me.Caption = SecToTime(intSek)
End Sub

Private Function SecToTime(ByVal lSec As Long) As String
Dim lMin As Long
  lMin = Format(Fix(lSec / 60), "00")
  SecToTime = Format(Fix(lMin / 60), "00") & ":" & _
              Format(lMin Mod 60, "00") & ":" & _
              Format(lSec Mod 60, "00")
End Function
'----------------------------- Form1 -----------------------------
Avatar billede sjh Nybegynder
20. maj 2005 - 17:44 #9
For ikke at få et minus-tal kan du bruge Abs()

intSek = DateDiff("s", "20-05-2005 22:00", "20-05-2005 03:00")
Me.Caption = SecToTime(Abs(intSek))
Avatar billede jelle Nybegynder
21. maj 2005 - 13:22 #10
sjh tak for din hjælp, har fået det til at virke nu... opretter du lige et svar så jeg kan give dig dine points?
Avatar billede sjh Nybegynder
21. maj 2005 - 15:05 #11
det var da godt :D
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