Avatar billede _petrucci Nybegynder
18. december 2001 - 11:18 Der er 1 kommentar og
1 løsning

Dato og time beregning

Hejsa :)

Jeg har fået bakset en kode sammen, der kan udregne dato/time på følgende måde:

Startdato  11-07-2001 10:00:00
Slutdato 11-07-2001 17:10:00
Resultat=  07:10:00

Den virker også hvis jeg laver det sådan:

Startdato 11-07-2001 10:00:00
Slutdato 12-07-2001 08:00:00
Resultat= 22:00:00

Men hvis jeg udskifter den sidste slutværdi fra 08:00:00 til 12:00:00 får jeg bare resultatet 02:00:00. Ligeledes hvis jeg skriver den 13-07-2001 i slutdatofeltet.

Hvorledes fikses dette? Jeg har nedenstående kode i en opdater_database.asp fil:

Function MinutesBetween(mbTimeBegin, mbTimeEnd)
        mbMinutes = ((Hour(mbTimeEnd) * 60) + Minute(mbTimeEnd)) - ((Hour(mbTimeBegin) * 60) + Minute(mbTimeBegin))
        If mbMinutes < 0 Then mbMinutes = mbMinutes + (60 * 24)
        MinutesBetween = mbMinutes
End Function

\' denne funktion sørger for at tallet altid er 2-cifret
Function FixNumber(fnNumber)
        FixNumber = fnNumber
        If Len(\"\" & fnNumber) < 2 Then FixNumber = \"0\" & fnNumber
End Function

\' denne funktion udregner timer og minutter ud og sætter det rigtigt op - min. udregnet vha. \"MinutesBetween\"-funktionen
Function TimeBetween(mbTimeBegin, mbTimeEnd)
        tmpMinutes = MinutesBetween(mbTimeBegin, mbTimeEnd)
        TimeBetween = \"\" & FixNumber(tmpMinutes \\ 60) & \".\" & FixNumber(tmpMinutes - ((tmpMinutes \\ 60) * 60))
End Function

start = request(\"tid_startdato\") & \" \" & request(\"tid_starttidspunkt\")
slut = request(\"tid_slutdato\") & \" \" & request(\"tid_sluttidspunkt\")

mellem = MinutesBetween(CDate(formatdatetime(start, 4)), CDate(formatdatetime(slut, 4)))

SQLstmt = \"UPDATE Tidsreg1 SET MINUTTER=\'\" & mellem & \"\' WHERE BRUGER_ID=\"& Session(\"BRUGER_ID\")  & \" AND ID=\" & opdater
Avatar billede _petrucci Nybegynder
18. december 2001 - 11:21 #1
Skal måske lige nævne at:

- MINUTTER er et integer felt i databasen
- tiden udskrives i tid.asp med følgende linje:

  response.write \"\" & Fixnumber(MINUTTER \\ 60) & \":\" & Fixnumber(MINUTTER - ((MINUTTER \\ 60) * 60))
Avatar billede _petrucci Nybegynder
19. december 2001 - 08:31 #2
Lader ikke til at nogen har noget at sige, så jeg lukker spørgsmålet og finder en alternativ løsning :)
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