Avatar billede clausnilsson Mester
08. september 2007 - 19:12 Der er 10 kommentarer og
1 løsning

Hvorfor forkert resultat af tidsberegning?

Jeg beregner forskellen mellem to tidspunkter:

forskel = Format(SlTid(i) - StTid(i), "dd hh:mm:ss")

Data er:
07-09-2007 10:11:34 proj1 07-09-2007 17:11:44
07-09-2007 18:15:05 proj2 08-09-2007 18:15:07
08-09-2007 18:16:33 proj3 08-09-2007 18:16:39

Output er korrekt for hh:mm:ss, men hvor dd bør give 0, 1 og 0 bliver resultatet i stedet 30, 31 og 30.

Hvorfor dog det???
Avatar billede neoman Novice
08. september 2007 - 19:31 #1
check out datediff funktionen
Avatar billede neoman Novice
08. september 2007 - 19:33 #2
timediff skulle der stå, naturligvis
Avatar billede clausnilsson Mester
08. september 2007 - 19:42 #3
Jeg kan ikke finde info om timediff :-(
Avatar billede neoman Novice
08. september 2007 - 19:44 #4
http://www.functionx.com/vb/Lesson09.htm - der har de en datediff

jeg er på vb.net, så ikke så meget i vb - sorry
Avatar billede hiks Nybegynder
12. september 2007 - 09:48 #5
hej

prøv evt. først at regne ned i mindste dato enhed (her sekunder) og så juster følgende kode:

http://www.freevbcode.com/ShowCode.asp?ID=1920

Beregning er sekunder: x = DateDiff("s", startDatoTid, slutDatoTid) og smid så sekunderne ind i funktionen.

/hiks
Avatar billede mikker Nybegynder
21. september 2007 - 14:11 #6
b = DateAdd("s", DateDiff("s", "07-09-2007 10:11:34", "07-09-2007 17:09:20", 2, 2), "00:00:00")
Avatar billede mikker Nybegynder
21. september 2007 - 14:13 #7
Nej nej nej. Undskyld.
Avatar billede mikker Nybegynder
21. september 2007 - 14:52 #8
Sltid = "07-09-2007 10:11:34"
Sttid = "08-09-2007 17:09:35"
b = DateDiff("s", Sltid, Sttid, 2, 2)
b0 = (b Mod 86400)
dg = (b - b0) / 86400
b2 = (b0 Mod 3600)
tim = (b0 - b2) / 3600
sekund = (b2 Mod 60)
minut = (b2 - b4) / 60
streng = Format(dg, "00") & " " & Format(tim, "00") & ":" & Format(minut, "00") & ":" & Format(sekund, "00")
MsgBox streng
Avatar billede mikker Nybegynder
21. september 2007 - 15:04 #9
Eller måske er dette nok:

Function dage2(Sltid, Sttid)
b = DateDiff("s", Sltid, Sttid, 2, 2)
dg = (b - (b Mod 86400)) / 86400
b1 = DateAdd("s", b - (dg * 86400), "00:00:00")
dage2 = Format(dg, "00") & " " & b1
End Function
Avatar billede mikker Nybegynder
20. november 2007 - 12:28 #10
Lukketid?
Avatar billede mikker Nybegynder
05. december 2007 - 12:34 #11
Glædelig jul.
Hvad med at få lukket for spørgsmålet?
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