Avatar billede Jman Praktikant
04. marts 2003 - 13:59 Der er 5 kommentarer og
2 løsninger

Datediff kal beregne tid på start/stop

|----------- KODE ----------|
<%    sqltid="SELECT eventting, tid From tidsforbrug Where opgavenr = '" & request("ID") & "'"
set rstid = conn.execute(sqltid)
%>

<% do while not rstid.EOF %>
<%
If rstid("eventting") = "START" Then
  eventstart = rstid("tid")
  tidsforbrug = ""
Else
  eventstop = rstid("tid")
  tidsforbrug = Datediff("h", eventstart, eventstop)

end if %>
<%rstid.movenext%>
<%loop%>

<TD>
<h3 style="margin-bottom: 3">Brugt tid:</h3>
<h3 style="margin-bottom: 3"><%Response.write Tidsforbrug%></h3>
</TD>
<%rstid.close%>
<%set rstid = nothing%>
<TD>
<h3 style="margin-bottom: 3">Foventet tidsforbrug:</h3>
<h3 style="margin-bottom: 3"><%=rs("Tidsestimat")%>&nbsp;timer</h3>
</TD>
|--------- KODE SLUT ---------|

|-------- DATABASEN --------|
ID  |  OPGAVENR  |  ORPETTET  |  EVENTTING  |  TID
2  |  9160      |  <NULL>    |  START      |  27-02-2003 15:30:00
3  |  9160      |  <NULL>    |  STOP      |  27-02-2003 19:12:18
|-------- /DATABASEN --------|

D.v.s. at mit kald gerne skulle gengive
Brugt tid: 4:17:42
Men istedet viser den: 904315

Er de en venlig sjæl der kan fuldøre min kode, således at det står pænt (tt:mm:ss) og at beregningen er korrekt
Avatar billede eagleeye Praktikant
04. marts 2003 - 16:21 #1
Problemmet med dateDiff er den kun kan angive tiden i enten timer, minutter eller sekuner. Den kan ikke give det format tt:mm:ss så der skal laves en funktion.

Prøv at ligge denne function i bunden af din fil:

<%
function sTimeCalc(StartTime, FinishTime)
Dim diff, mins, hours, secs
diff = datediff("s",StartTime,FinishTime)
'set the minutes ignoring the remaining fraction
hours = int(diff / (60*60))
' set the minutes by using the remaining fraction and multiplying by 60 i.e., .5 * 60 = 30
mins = Int(60*(diff / (60*60) - hours))
secs = Int(diff - ((60*60)* hours) - (60 * mins))
hours = Right("0" & hours,2)
mins = Right("0" & mins,2)
secs = Right("0" & secs,2)
sTimeCalc = hours & ":" & mins & ":" & secs
end function
%>


-----------------

Ret i else delen inde i loop'et. Ret dette styke kode:

Else
  eventstop = rstid("tid")
  tidsforbrug = Datediff("h", eventstart, eventstop)

end if %>

Til at være sådan her:

Else
  eventstop = rstid("tid")
  tidsforbrug = sTimeCalc(eventstart, eventstop)

end if %>
Avatar billede Jman Praktikant
05. marts 2003 - 12:56 #2
Så tæt på og alligevel.... ;)

MEN nu viser den tiden "15:12:08" - d.v.s udregningen er ikke korrekt.
min tidsberegning siger at der skulle have stået "3:42:18"  ??
Avatar billede eagleeye Praktikant
05. marts 2003 - 18:20 #3
Ja jeg er helt ening med dig det skal give 3:42:18 og ikke over 15 timer..
Pørv at tilføje denne linie for at se om tidspunkterne kommer rigtigt fra databasen.

Response.write eventstart & " - " & eventstop


Lige efter denne linie:
tidsforbrug = sTimeCalc(eventstart, eventstop)
Avatar billede eagleeye Praktikant
05. marts 2003 - 18:39 #4
Det kan være du skal tilføje denne linje i toppen af koden:

<% Session.LCID = 1030 %>

for at få Dansk dato/tids format, men det skulle vist ikke være nødvendigt men prøv det.
Avatar billede Jman Praktikant
19. marts 2003 - 21:37 #5
er lige kommet tilbage fra ferie - er du evt. på i morgen aften - jeg kunne skide godt tænke mig at slippe af med mit problem :/
Avatar billede Jman Praktikant
20. marts 2003 - 17:17 #6
dit sidste forslag gav resultatet:
- 27-02-2003 15:30:00 - 27-02-2003 19:32:08 - 27-02-2003 20:30:00 - 27-02-2003 21:30:00
Avatar billede Jman Praktikant
20. marts 2003 - 20:49 #7
Du får lige ½ point, da løsningen er halvt klaret - jeg opretter lige et nyt spørgsmål, for resten af løsningen
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