Avatar billede jsc Nybegynder
06. august 2007 - 18:20 Der er 28 kommentarer og
1 løsning

finde et starttidspunkt

Hej Eksperter...

det er ikke så svært at trække to tidspunkter fra hinanden og dermed findes diferensen... men hvordan finder man starttidspunktet, hvis man har tiden imellem og sluttidspunktet...

/jsc
Avatar billede thesurfer Nybegynder
06. august 2007 - 18:27 #1
På samme måde :-)

slut - start = mellem

slut - mellem = start

:-)
Avatar billede thesurfer Nybegynder
06. august 2007 - 18:27 #2
..og: start + mellem = slut
Avatar billede jsc Nybegynder
06. august 2007 - 18:32 #3
tror også lige jeg lavede en torsk der... men det er vist fordi der sker en fejl pga to arrays... jeg vil have en løkke med to arrays der kører par løb... der var derfor jeg opgav og skrev hertil, da jeg troede det var tidspunkterne... jeg testet koden uden løkken og det virker fint.... - så mangler jeg bare løkken ;)
Avatar billede thesurfer Nybegynder
06. august 2007 - 18:33 #4
Jeg har ingen anelse om hvad det er du prøver på.. :-)

Måske skulle du prøve med noget kode..? :-)
Avatar billede jsc Nybegynder
06. august 2007 - 18:37 #5
For t = 0 to (Ubound(navnesplit)-Lbound(navnesplit))


    Sec = DateDiff("s", rejsetidssplit(t), ankomsttid)

    Min = Sec \ 60
    Sec = Sec Mod 60
    Hour = Min \ 60
    Min = Min Mod 60
   
    Sec = Right("0" & Sec, 2)
    Min = Right("0" & Min, 2)
    Hour = Right("0" & Hour, 2)
   
response.write navnesplit(t) & " skal rejse klokken: " & Hour & ":" & Min & ":" & Sec & "<br>"

Next
Avatar billede jsc Nybegynder
06. august 2007 - 18:38 #6
Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typer stemmer ikke overens: 'rejsetidssplit(...)'
Avatar billede thesurfer Nybegynder
06. august 2007 - 18:42 #7
Er rejsetidssplit en array? Hvis ja, hvordan definerer du den?

Vis alle linier, der har med rejsetidssplit at gøre..
Avatar billede jsc Nybegynder
06. august 2007 - 18:48 #8
ankomsttid = request("ankomsttid")
navne = request("navne1") & "," & request("navne2") & "," & request("navne3")
rejsetid = request("rejsetid1") & "," & request("rejsetid2") & "," & request("rejsetid3")
navnesplit = split(navne, ",")
rejsetidssplit = split(rejsetid, ",")

For t = 0 to (Ubound(navnesplit)-Lbound(navnesplit))


    Sec = DateDiff("s", rejsetidssplit(t), ankomsttid)

    Min = Sec \ 60
    Sec = Sec Mod 60
    Hour = Min \ 60
    Min = Min Mod 60
   
    Sec = Right("0" & Sec, 2)
    Min = Right("0" & Min, 2)
    Hour = Right("0" & Hour, 2)
   
response.write navnesplit(t) & " skal rejse klokken: " & Hour & ":" & Min & ":" & Sec & "<br>"

Next


^^ det kører fint hvis man sætter 0,1 og 2 ind istedet for t...
Avatar billede jsc Nybegynder
06. august 2007 - 18:53 #9
iøvrigt... scriptet jeg har skrevet med i koden virker ikke til mellemtider på over et døgn... kan man gøre noget ved det?
Avatar billede jsc Nybegynder
06. august 2007 - 18:53 #10
altså rejsetiden...
Avatar billede thesurfer Nybegynder
06. august 2007 - 18:58 #11
1) Brug aldrig request. Brug altid den korrekte form, f.eks.
Data modtages via en FORM: request.form("...")
Data modtages via en URL: request.querystring("...")
Data aflæses fra en session: session("...")
Data aflæses fre en cookie: request.cookie("...")

2) Prøv lige at udskrive rejsetid:

rejsetid = request("rejsetid1") & "," & request("rejsetid2") & "," & request("rejsetid3")
response.write rejsetid
response.end ' afslutter afviklingen!
Avatar billede jsc Nybegynder
06. august 2007 - 19:01 #12
det kommer som det skal...

00:10:00,02:24:00,03:40:20
Avatar billede thesurfer Nybegynder
06. august 2007 - 19:02 #13
Så prøv lige med:

    Sec = DateDiff("s", CDate(rejsetidssplit(t)), ankomsttid)
Avatar billede thesurfer Nybegynder
06. august 2007 - 19:03 #14
Fjern linierne:

response.write rejsetid
response.end ' afslutter afviklingen!

Får du stadig fejl?
Avatar billede thesurfer Nybegynder
06. august 2007 - 19:05 #15
Egentligt må du gerne behover "response.write rejsetid", så du kan se om der er fejl i strengen..

Hvis du vil nå at se strengen, skal toppen af dokumentet nok se sådan ud:

Option Explicit ' alle variabler SKAL defineres med Dim VariabelNavn = undgå stavefejl

On Error Resume Next ' Fortsæt selvom der er problemer

Response.Buffer = False ' send data til browseren, som de bliver genereret
Avatar billede jsc Nybegynder
06. august 2007 - 19:07 #16
jep...

Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typer stemmer ikke overens: 'CDate'

sorry
Avatar billede thesurfer Nybegynder
06. august 2007 - 19:09 #17
Prøv med: CDate("" & rejsetidssplit(t))
Avatar billede thesurfer Nybegynder
06. august 2007 - 19:11 #18
Hmm.. prøv det her:

For t = 0 to (Ubound(navnesplit)-Lbound(navnesplit))

response.write "t: " & t & "<br>"
response.write "indhold: " & rejsetidssplit(t) & "<br>"
response.write "dato: " & CDate("" & rejsetidssplit(t)) & "<hr>"
response.end

Hvad skriver den over "------------------" linien?
Avatar billede thesurfer Nybegynder
06. august 2007 - 19:15 #19
Kommer lige i tanke om noget.. slet linien "response.end"..

Sådan:

For t = 0 to (Ubound(navnesplit)-Lbound(navnesplit))

response.write "t: " & t & "<br>"
response.write "indhold: " & rejsetidssplit(t) & "<br>"
response.write "dato: " & CDate("" & rejsetidssplit(t)) & "<hr>"


Hvad står der (i variablerne) når den crasher?
Avatar billede jsc Nybegynder
06. august 2007 - 19:16 #20
to sek
Avatar billede jsc Nybegynder
06. august 2007 - 19:36 #21
ved ikke lige hvad der er gået galt... men det her ser ud til at virke:

<%
Option Explicit ' alle variabler SKAL defineres med Dim VariabelNavn = undgå stavefejl

'On Error Resume Next ' Fortsæt selvom der er problemer

Response.Buffer = False ' send data til browseren, som de bliver genereret

%>


<table border="0">
<form action="rejse.asp?action=calculate" method="post">
<tr>
    <td>Sæt ankomsttidspunkt (Format: tt:mm:ss):</td>
    <td><input type="text" name="ankomsttid"></td>
</tr>
<tr>
    <td>Navne fra distination1:</td>
    <td><input type="text" name="navne1"></td>
    <td>Rejsetid (Format: tt:mm:ss):</td>
    <td><input type="text" name="rejsetid1"></td>
</tr>
<tr>
    <td>Navne fra distination2:</td>
    <td><input type="text" name="navne2"></td>
    <td>Rejsetid (Format: tt:mm:ss):</td>
    <td><input type="text" name="rejsetid2"></td>
</tr>
<tr>
    <td>Navne fra distination3:</td>
    <td><input type="text" name="navne3"></td>
    <td>Rejsetid (Format: tt:mm:ss):</td>
    <td><input type="text" name="rejsetid3"></td>
</tr>
<tr>
    <td></td>
    <td></td>
</tr>
<tr>
    <td></td>
    <td><input type="submit" value="Beregn" name="submit"></td>
</tr>
</form>
</table>

<br><br>
<%
Dim ankomsttid, navne, rejsetid, navnesplit, rejsetidssplit, t
Dim Hour, Min, Sec

if request("action") = "calculate" then
response.write "Resultat:<br><br>"

ankomsttid = request.form("ankomsttid")

'medvirkende i rejsen er:

navne = request.form("navne1") & "," & request.form("navne2") & "," & request.form("navne3")
rejsetid = request.form("rejsetid1") & "," & request.form("rejsetid2") & "," & request.form("rejsetid3")

navnesplit = split(navne, ",")
rejsetidssplit = split(rejsetid, ",")

response.write "Ankomsttidspunkt: " & ankomsttid & "<br>navne: " & navne & "<br>" & "tider: " & rejsetid & "<br>"

'afgang klokken:



For t = 0 to (Ubound(navnesplit) - Lbound(navnesplit))


    Sec = DateDiff("s", CDate("" & rejsetidssplit(t)), ankomsttid)

    Min = Sec \ 60
    Sec = Sec Mod 60
    Hour = Min \ 60
    Min = Min Mod 60
   
    Sec = Right("0" & Sec, 2)
    Min = Right("0" & Min, 2)
    Hour = Right("0" & Hour, 2)
   
response.write navnesplit(t) & " skal rejse klokken: " & Hour & ":" & Min & ":" & Sec & "<br>"


Next

'For t = 0 to (Ubound(navnesplit)-Lbound(navnesplit))

'response.write "t: " & t & "<br>"
'response.write "indhold: " & rejsetidssplit(t) & "<br>"
'response.write "dato: " & CDate("" & rejsetidssplit(t)) & "<hr>"

'Next



end if
%>

resultat:

Ankomsttidspunkt: 22:20:00
navne: 1,2,3
tider: 01:30:00,10:03:40,04:10:00
1 skal rejse klokken: 20:50:00
2 skal rejse klokken: 12:16:20
3 skal rejse klokken: 18:10:00


det eneste der så mangler er at man overskrider et døgn... både omkring ankomsten og hvis rejsetiden er længere end et døgn... så sker der fejl...
Avatar billede thesurfer Nybegynder
06. august 2007 - 19:39 #22
Hvis tiden kan overskride et døgn, skal du have dato med.. så er tidspunktet ikke længere nok..

Det vil jeg mene er løsningen..
Avatar billede thesurfer Nybegynder
06. august 2007 - 19:40 #23
..ellers kan tidspunktet vel blive negativt.. hvilket ikke er så godt.. :-)
Avatar billede jsc Nybegynder
06. august 2007 - 19:40 #24
hvordan kan man indsætte det nemmest muligt - er det til?
Avatar billede thesurfer Nybegynder
06. august 2007 - 19:42 #25
Det meste ville være, hvis brugeren også indtastede dato, når han indtastede tidspunkt..
Avatar billede jsc Nybegynder
06. august 2007 - 19:44 #26
jep... problemet er bare at jeg har rejsetiderne i timer:min:sek

men jeg finder nok på noget med at lege lidt på rejsetider inden de udsættes for datediff..

gider du at svare?
Avatar billede thesurfer Nybegynder
06. august 2007 - 19:46 #27
Du bliver nødt til at få dato med.. altså, at datoen også indtastes..
Du kan ikke finde datoen, ved at kigge på tidspunktet.. med mindre at du har sat en regel op (i hovedet), der siger: "fra-tidspunkter hører altid til dags dato".. eller noget i den stil..

Svar.. :-)
Avatar billede thesurfer Nybegynder
06. august 2007 - 19:49 #28
Takker for points.. hav en god dag! :-)
Avatar billede jsc Nybegynder
06. august 2007 - 19:52 #29
ilm
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