Avatar billede brutus Nybegynder
02. november 2002 - 11:04 Der er 12 kommentarer og
1 løsning

tidsproblemer

Hej
Har et problem med tid, har 2 felter i en db : tid og dato. Jeg vil på et givet tidspunkt have tiden mellem nu og tid. Virker fint, sålænge det er inden for samme dato, men er tid f.eks 23.00 d 1/11 og jeg vil beregne tid 04.00 d 2/11 går der ged i det :-(
Avatar billede capaj Nybegynder
02. november 2002 - 11:20 #1
Hej Brutus,

jeg har nedenstående funktion. tror den løser issue :-)

/capaj

Function PresentDateTimeDiff(D1, D2)
    Dim mo, da, Ye, HH, mm, ss
    Dim dastr, hhstr, ssstr, mmstr
    Dim tmpout
    If Not IsDate(D1) Or Not IsDate(D2) Then Exit Function
    Dim s
    D1 = CDate(D1)
    D2 = CDate(D2)
    s = D2 - D1
    If s <= 0 Then Exit Function
    da = Int(s)
   
    HH = Hour(s)
    mm = Minute(s)
    ss = Second(s)
   
    If da > 0 Then
        If da = 1 Then
            tmpout = tmpout & da & " day,"
        Else
            tmpout = tmpout & da & " days,"
        End If
    End If
    If HH > 0 Then
        If HH = 1 Then
            tmpout = tmpout & HH & " hour,"
        Else
            tmpout = tmpout & HH & " hours,"
        End If
    End If
    If mm > 0 Then
        If mm = 1 Then
            tmpout = tmpout & mm & " minute,"
        Else
            tmpout = tmpout & mm & " minutes,"
        End If
    End If
    If ss > 1 Then
        If ss = 1 Then
            tmpout = tmpout & ss & " second,"
        Else
            tmpout = tmpout & ss & " seconds,"
        End If
    End If
    If Len(tmpout) > 1 Then tmpout = Left(tmpout, Len(tmpout) - 1)
    PresentDateTimeDiff = tmpout

End Function
Avatar billede brutus Nybegynder
02. november 2002 - 11:26 #2
Ser ud til at være en mægtig smøre i forhold til det jeg har nu :-)

time1 = (Data1.Recordset("Time"))
time2 = (Data1.Recordset("sluttid"))
regn = DateDiff("s", time1, time2)

kan det ikke laves lettere ? (er lidt i tidsnød og stresset, har siddet fra 02.45 og progget, skal afleveres mandag og mig og vb :-(((  )
Avatar billede kjeld_klit Nybegynder
02. november 2002 - 11:37 #3
Kan du ikke først tælle dagene fra datostart til datoslut først?
DateDiff("d", datostart, datoslut)
Hvis du gør det i en if...sætning og det er = 0 er det samme dato ellers skal det ganges med 24 (24 timer). Resultatet heraf skal så lægges til resultatet af regn
Avatar billede brutus Nybegynder
02. november 2002 - 11:47 #4
kjeld klit -> kan du ikke lave lidt kode, kan ikke se det for mig (nok lidt træt)
Avatar billede kjeld_klit Nybegynder
02. november 2002 - 11:50 #5
Liger lige lidt :-)
Avatar billede brutus Nybegynder
02. november 2002 - 11:56 #6
oki :-)
Avatar billede kjeld_klit Nybegynder
02. november 2002 - 11:57 #7
Dim Tid1
Jeg kan ikke lige se for mig det resultat du skal have men måske det kan føre dig på sporet:

Tid1 = DateDiff("d", time1, time2)
If Tid1 > 0 Then
    Sek = Tid1 * 24 * 3600
End If
regn = DateDiff("s", time1 + Sek, time2)
Avatar billede brutus Nybegynder
02. november 2002 - 12:13 #8
fik det løst ved at sætte datoerne til sek, og nu funker det, takker :-)
Avatar billede brutus Nybegynder
02. november 2002 - 12:14 #9
kjeld klit -> hvis du vil have points skal du svare, kan ikke give points til kommentarer
Avatar billede kjeld_klit Nybegynder
02. november 2002 - 12:19 #10
Jeg svarer gerne, men fandt du ikke selv ud af det?
Avatar billede brutus Nybegynder
02. november 2002 - 12:20 #11
jo, men ikke uden kraftig tiltrængt hjælp :-))
Avatar billede kjeld_klit Nybegynder
02. november 2002 - 12:26 #12
Mange tak!
Avatar billede brutus Nybegynder
02. november 2002 - 12:30 #13
:-) nu vil jeg også styrte om på sofaen. En måned med ca 4 timers søvn i døgnet kan sq mærkes, når man ikke er helt ung mere (følte mig ellers ung før hovedopgaven)
Men nu ser det ud til at vb programmet bliver i orden til mandag kl 10, så er det kun rapporten der skal laves :-))
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