Avatar billede jgp Nybegynder
15. februar 2001 - 11:32 Der er 2 kommentarer og
1 løsning

Dato og tids ned/op tæller

Koden skulle både kunne tælle ned til et tidspunkt og derefter tælle op hvor lang tid siden det var input-tidspunktet.
Koden kan sagtens tælle ned, men når den når \"0\" begynder den at tælle op fra -2:00 timer.
Nogen der kan hjælpe mig med dette?

Function CountDown(dTargetDate, dTargetTime, sEventName)
    DIM D1, D2, T1, T2, Years, Months, Days, Hours, Minutes, Temp, since
   
    D2 = DateValue(dTargetDate)
    T2 = TimeValue(dTargetTime)

    If (D2 < Date) Then
        since = TRUE
        D1 = DateValue(dTargetDate)
        D2 = Date
        T1 = TimeValue(dTargetTime)
        T2 = Time
    Else
        since = FALSE
        D1 = Date
        T1 = Time
    End If

    Years = Year(D2) - Year(D1)
    Months = Month(D2) - Month(D1)
    Days = Day(D2) - Day(D1)

    Hours = Hour(T2) - Hour(T1)
    Minutes = Minute(T2) - Minute(T1)

    If (Months < 0) Then
        Months = Months + 12
        Years = Years - 1
    End If

    If (Days < 0) Then
        Days = Days + DaysIn(Month(D1))
        Months = Months - 1
    End If

    If (Hours < 0) Then
        Hours = Hours + 24
        Days = Days - 1
    End If

    If (Minutes < 0) Then
        Minutes = Minutes + 60
        Hours = Hours - 1
    End If

    Temp = \"\"

    If (Years <> 0) Then
        Temp = Temp & Years
        If (Years = 1) Then
            Temp = Temp & \" år \"
        Else
            Temp = Temp & \" år \"
        End If
    End If
    If (Months <> 0) Then
        Temp = Temp & Months
        If (Months = 1) Then
            Temp = Temp & \" måned \"
        Else
            Temp = Temp & \" måneder \"
        End If
    End If
    If (Days <> 0) Then
        Temp = Temp & Days
        If (Days = 1) Then
            Temp = Temp & \" dag \"
        Else
            Temp = Temp & \" dage \"
        End If
    End If
    If (Hours <> 0) Then
        Temp = Temp & Hours
        If (Hours = 1) Then
            Temp = Temp & \" time \"
        Else
            Temp = Temp & \" timer \"
        End If
    End If
    If (Minutes <> 0) Then
        If (Temp <> \"\") Then Temp = Temp & \" og \"
        Temp = Temp & Minutes
        If (Minutes = 1) Then
            Temp = Temp & \" minut \"
        Else
            Temp = Temp & \" minuter \"
        End If
    End If
    If (Since) Then
        Temp = \"<font color=red>\" & temp & \"</font>\"
    Else
        Temp = temp
    End If

    Countdown = Temp
End Function

\' Returns the number of days in a given month
Function DaysIn(MonthNum)
    Select Case MonthNum
        Case 1  DaysIn = 31 \'jan
        Case 2  DaysIn = 28 \'feb
        Case 3  DaysIn = 31 \'mar
        Case 4  DaysIn = 30 \'apr
        Case 5  DaysIn = 31 \'may
        Case 6  DaysIn = 30 \'jun
        Case 7  DaysIn = 31 \'jul
        Case 8  DaysIn = 31 \'aug
        Case 9  DaysIn = 30 \'sep
        Case 10 DaysIn = 31 \'oct
        Case 11 DaysIn = 30 \'nov
        Case 12 DaysIn = 31 \'dec
    End Select
End Function
Avatar billede spectual Nybegynder
15. februar 2001 - 11:34 #1
DaysIn tager ikke højde for skudår?
Avatar billede jgp Nybegynder
15. februar 2001 - 11:38 #2
Rigtigt nok men dette forklare vel ikke hvorfor at den starter fra -2 timer når den er nået \"nul-punktet\" og der efter -1 dage 23 timer?
Avatar billede jgp Nybegynder
15. februar 2001 - 11:49 #3
Okey jeg har fundet problemet, mangler så bare at løse det :-)

Problem:

Så snart den når nul-punktet, minuser den 1 time fra nul og + 60 minuter, hvor efter den så tæller ned fra de 60 minuter, når de er gået minuser den en dag ovs...
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