Avatar billede gliczynski Nybegynder
29. april 2002 - 14:32 Der er 11 kommentarer og
1 løsning

Timer og minutter i mellem to tidspunkter inkl. dato

Hej

er der nogen som kan hjælpe mig med følgende problem:

Jeg har to datoer og to tidspunkter, som fx.:

25052002 16.34  &  26052002 01.23

Hvordan finder jeg ud af, hvormange timer og minutter der i mellem disse to tidspunkter.

Jeg havde forestillet mig en function som jeg kunne kalde hvor som helst... så noget lignende:

FUNCTION HMBetween(sDate, sTime, eDate, eTime)
???
END FUNCTION

er der nogen som ligger inde med evt. en komponent som kan løse mit problem - så ville jeg blive glad.


Håber på hjælp - hurtigst mulig

Martin
Avatar billede kimiwan Nybegynder
29. april 2002 - 14:42 #1
Hvis du vil spare 100 points, skal du se på vbscriptfunktionen datediff()
Avatar billede gliczynski Nybegynder
29. april 2002 - 14:44 #2
Det er sgu da også rigtig nok.. kigger lige på det....

damn
Avatar billede eagleeye Praktikant
29. april 2002 - 14:56 #3
Sådan her kan du lave din function:


function HMBetween(sDate, sTime, eDate, eTime)
Dim sDato, eDato
dDato = Mid(sDate,1,2) & "-" & Mid(sDate,3,2) & "-" & Mid(sDate,5,4) & " " & Mid(sTime,1,2) & ":" & Mid(sTime,4,2) & ":00"
eDato = Mid(eDate,1,2) & "-" & Mid(eDate,3,2) & "-" & Mid(eDate,5,4) & " " & Mid(eTime,1,2) & ":" & Mid(eTime,4,2) & ":00"
HMBetween = dateDiff("n",dDato,eDato)
end function
Avatar billede eagleeye Praktikant
29. april 2002 - 15:05 #4
Den forudsætte det du skrev til dato og tid:
sDate= "25052002"
sTime = "16.34"
eDate = "26052002"
eTime = "01.23"
Avatar billede gliczynski Nybegynder
29. april 2002 - 15:09 #5
Jeg synes ikke rigtig jeg kan få det til at virke, eagleeye... med

sDate= "25052002"
sTime = "16.34"
eDate = "26052002"
eTime = "01.23"
Avatar billede eagleeye Praktikant
29. april 2002 - 15:10 #6
Du kalder bare function sådan her:

Response.Write "Minutter mellem..:" & HMBetween(sDate, sTime, eDate, eTime)
Avatar billede eagleeye Praktikant
29. april 2002 - 15:11 #7
how den regner kun min... to secs
Avatar billede gliczynski Nybegynder
29. april 2002 - 15:13 #8
Hvad dæl'len gør jeg forkert...

<%
FUNCTION HMBetween(sDate, sTime, eDate, eTime)
Dim sDato, eDato
dDato = Mid(sDate,1,2) & "-" & Mid(sDate,3,2) & "-" & Mid(sDate,5,4) & " " & Mid(sTime,1,2) & ":" & Mid(sTime,4,2) & ":00"
eDato = Mid(eDate,1,2) & "-" & Mid(eDate,3,2) & "-" & Mid(eDate,5,4) & " " & Mid(eTime,1,2) & ":" & Mid(eTime,4,2) & ":00"
HMBetween = dateDiff("n",dDato,eDato)
END FUNCTION

%>

<% DIM myVar
sDate= "25052002"
sTime = "16.34"
eDate = "26052002"
eTime = "01.23"

myVar =  HMBetween(sDate, sTime, eDate, eTime)

response.write myVar
%>
Avatar billede eagleeye Praktikant
29. april 2002 - 15:14 #9
Her kommer function lige igen:

function HMBetween(sDate, sTime, eDate, eTime)
Dim diff, mins, hours
Dim sDato, eDato

dDato = Mid(sDate,1,2) & "-" & Mid(sDate,3,2) & "-" & Mid(sDate,5,4) & " " & Mid(sTime,1,2) & ":" & Mid(sTime,4,2) & ":00"
eDato = Mid(eDate,1,2) & "-" & Mid(eDate,3,2) & "-" & Mid(eDate,5,4) & " " & Mid(eTime,1,2) & ":" & Mid(eTime,4,2) & ":00"
diff = dateDiff("n",dDato,eDato)
hours = int(diff / 60)
' set the minutes by using the remaining fraction and multiplying by 60 i.e., .5 * 60 = 30
mins = round(60*(diff / 60 - hours),0)
hours = string(2-len(hours),"0") & hours
mins = string(2-len(mins),"0") & mins
HMBetween = hours & ":" & mins
end function
Avatar billede gliczynski Nybegynder
29. april 2002 - 15:16 #10
JEg ved hvad jeg har gjort forkert... Hacde functionen liggende inde i en SUB rutine.. ik pisse smart.. Kigger lige på det sidste du sendte...

men det virker der andet..
Avatar billede gliczynski Nybegynder
29. april 2002 - 15:19 #11
Det virker.. tak..

Jeg tænkte på, om man kunne lave noget mere advanceret, hvor man f.eks. undersøger om nogen af timerne ligger mellem 19.30 og 00.00. Og hvis de gør, hvor mange er det så.....???

Kunne man ligge det ind i funktionen, ved at difinere nogle intervaller eller lignende.. Har du nogen erfaring på det område...???
Avatar billede eagleeye Praktikant
29. april 2002 - 15:35 #12
Det er relativet let at  kikke på om klokken er >19.30 og <00.00 men problmmet kommer når det er overflere dage så er der jo op til flere timer som ligger i det interval. Der er ingen tvivl om det kan lade sig gøre..

Hvis man har start 01012002 18.00 og slut 02012002 23.00:
Første giver fra 19.30 -> 00.00
Anden dag giver fra 19.30 -> 23.00

Der kommer en masse if'er ..
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