Avatar billede nicb Nybegynder
02. juli 2004 - 10:45 Der er 9 kommentarer og
2 løsninger

Antal af timer mellem dato 1 og 2 = 49 timer hvordan kun time/min

Hej i kloge hoveder

Jeg vil gerne beregne antallet af timer mellem 2 date værdier.

jeg har f.eks.

dato_1 = 01-07-2004 10:00:00
dato_2 = 03-07-2004 11:00:00

Antallet af timer mellem dato_1 og dato_2 er = 49 timer hvordan får jeg resultatet ud kun i timer og minutter ?? Trækker jeg dem fra hinanden får jeg en dato i ruderkonges tid og hh:mm:ss.

Og hvordan lægger jeg derefter flere beregnede værdier sammen til et sæt timer/minutter.

Jeg ved at der i excel er funktionen 37:30:55, hvor man kan gøre det, så det kan vel lade sig gøre i VB.

På forhånd tak
Nicb
Avatar billede terry Ekspert
02. juli 2004 - 10:48 #1
DateDiff("hh", dato_1, dato_2)
02. juli 2004 - 10:51 #2
prøv denne funktion:

Public Function BeregnDatoForskel(Tid1 As Date, Tid2 As Date) As String
    Dim Min As Single
    Dim Tim As Single
    Dim Dage As Single
    Dage = DateDiff("s", Tid1, Tid2) / 60 / 60 / 24
    Tim = (Dage - Int(Dage)) * 24
    Min = (Tim - Int(Tim)) * 60
    BeregnDatoForskel = Int(Dage) & ":" & Int(Tim) & ":" & Int(Min)
End Function
Avatar billede terry Ekspert
02. juli 2004 - 10:52 #3
Opps!
DateDiff("h", dato_1, dato_2, vbMonday, vbFirstFourDays)

You can also use

DateDiff("n", .... to find the difference in minutes an dthen devide by 60 to give you hours. Then calculate the remaining minutes
Avatar billede terry Ekspert
02. juli 2004 - 10:53 #4
Must be nice having a boxs of tricks Thomas :o)
02. juli 2004 - 10:56 #5
jeps - It certainly makes life a little easier (as you know yourself ;o)
Avatar billede terry Ekspert
02. juli 2004 - 10:59 #6
and thanks for the mail concerning sharks!
02. juli 2004 - 11:06 #7
åh ja, de sataner :o(
Jeg syntes bare lige at jeg ville advare dem jeg kendte, som havde firma selv :o)

Beklager spam'en, Nicb!
Min funktion tager jo også dage med. Hvis du kun vil have timer og minutter med, har jeg lige skrevet den lidt om:

Public Function BeregnDatoForskelTimer(Tid1 As Date, Tid2 As Date) As String
    Dim Min As Single
    Dim Tim As Single
    Tim = DateDiff("s", Tid1, Tid2) / 60 / 60
    Min = (Tim - Int(Tim)) * 60
    BeregnDatoForskelTimer = Int(Tim) & ":" & Int(Min)
End Function
Avatar billede nicb Nybegynder
02. juli 2004 - 11:31 #8
Takker for en hurtig behandling og jeg er mere end tilfreds med første del af svaret men hvordan lægger jeg f.eks 2 BeregnDatoForskelTimer sammen til 1 værdi i sammeformat ?
25 points mere for dette svar
02. juli 2004 - 11:53 #9
Denne skulle kunne lægge 2 strenge sammen af formattet "hh:mm":

Public Function SumTimer(Timer1 As String, Timer2 As String) As String
    Dim T1 As Long, T2 As Long, T As Long
    Dim M1 As Long, M2 As Long, M As Long
    T1 = Left(Timer1, InStr(1, Timer1, ":") - 1)
    T2 = Left(Timer2, InStr(1, Timer2, ":") - 1)
    M1 = Mid(Timer1, InStr(1, Timer1, ":") + 1)
    M2 = Mid(Timer2, InStr(1, Timer2, ":") + 1)
    M = (M1 + M2) Mod 60
    T = T1 + T2 + Int((M1 + M2) / 60)
    SumTimer = T & ":" & M
End Function
Avatar billede nicb Nybegynder
02. juli 2004 - 12:35 #10
Hej thommas
hvordan får du de sidste 25 points ??
02. juli 2004 - 12:40 #11
hej nicb,

Hvis du gerne vil give ekstra, kan du altid oprette et nyt spm med ref til dete spm (http://www.eksperten.dk/spm/516136). Dog maks 200 point ialt.

Inden du accepterede, kunne du også have ændret point-antallet ved at klikke på de 75 point for oven - men det er lidt sent nu ;)

Du bør dog altid kun give ekstra point, hvis du mener, at du har fået mere hjælp, end du bad om, eller hvis du har indset at spørgsmålet var mere omfattende end først antaget.
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