Magnus wrote in dk.edb.internet.webdesign.serverside.asp:
> Jeg sidder og roder med at ovennævnte funktion men som jeg kan få til at
> vise hvor mange år dage osv. der er mellem to datoer.
> Men hvordan gør jeg så istedet for at den skriver "28 måneder" så
skriver
> den "2 år. 4md." osv.
>
> Er der en som har sådan en funktion jeg kan benytte?
<%
Function CalcDateDiff(EventDate)
EventDate = CDate(EventDate)
TheDate = Now
TheMonth = Month(TheDate)
TheYear = Year(TheDate)
If TheMonth = 12 Then
NMonth = 1
NYear = TheYear + 1
Else
NMonth = m+1
NYear = TheYear
End If
vSECOND = 1
vMINUTE = vSECOND*60
vHOUR = vMINUTE*60
vDAY = vHOUR*24
vMONTH = vDAY*Day(DateAdd("d",-1,DateSerial(NYear,NMonth,1)))
vYEAR =
vDAY*(31+Day(DateAdd("d",-1,DateSerial(TheYear,3,1)))+31+30+31+30+31+31+30+
31+30+31)
TempDD = DateDiff("s",TheDate,EventDate)
TD = TempDD
dYEAR = Fix(TempDD/vYEAR)
cYEAR = dYEAR & " år, "
If dYEAR < 1 Then
dYEAR = 0
cYEAR = ""
End If
TempDD = TempDD - (dYEAR * vYEAR)
dDAY = Fix(TempDD/vDAY)
cDAY = dDAY & " døgn, "
If dDAY < 0 Then
dDAY = 0
cDAY = ""
End If
TempDD = TempDD - (dDAY * vDAY)
dHOUR = Fix(TempDD/vHOUR)
cHOUR = "1 time, "
If dHOUR <> 1 Then
cHOUR = dHOUR & " timer, "
End If
If dHOUR < 0 Then
dHOUR = 0
cHOUR = ""
End If
TempDD = TempDD - (dHOUR * vHOUR)
dMINUTE = Fix(TempDD/vMINUTE)
cMINUTE = "1 minut og "
If dMINUTE <> 1 Then
cMINUTE = dMINUTE & " minutter og "
End If
If dMINUTE < 0 Then
dMINUTE = 0
End If
TempDD = TempDD - (dMINUTE * vMINUTE)
dSECOND = Fix(TempDD/vSECOND)
cSECOND = "1 sekund"
If dSECOND < 0 Then
dSECOND = 0
End If
If dSECOND <> 1 Then
cSECOND = dSECOND & " sekunder"
End If
TempDD = TempDD - (dSECOND * vSECOND)
CDDText = "Der er " & "<br>" & cYEAR & "" & cDAY & "" & cHOUR & "" &
cMINUTE & "" & cSECOND & " til<br>" &_
"den " & FormatDateTime(EventDate, vbLongDate) & " kl. " &
FormatDateTime(EventDate, vbLongTime) & "<br><br>"
dYEAR = DateDiff("yyyy",TheDate,EventDate)
cYEAR = VbTab & dYEAR & " år, eller<br>"
If dYEAR < 1 Then
dYEAR = 0
cYEAR = ""
End If
dMONTH = DateDiff("m",TheDate,EventDate)
cMONTH = VbTab & "1 måned, eller<br>"
If dMONTH <> 1 Then
cMONTH = VbTab & dMONTH & " måneder, eller<br>"
End If
If dMONTH < 1 Then
dMONTH = 0
cMONTH = ""
End If
dDAY = DateDiff("d",TheDate,EventDate)
cDAY = VbTab & dDAY & " døgn, eller<br>"
If dDAY < 0 Then
dDAY = 0
cDAY = ""
End If
dHOUR = DateDiff("h",TheDate,EventDate)
cHOUR = VbTab & "1 time, eller<br>"
If dHOUR < 0 Then
dHOUR = 0
End If
If dHOUR <> 1 Then
cHOUR = VbTab & dHOUR & " timer, eller<br>"
End If
dMINUTE = DateDiff("n",TheDate,EventDate)
cMINUTE = VbTab & "1 minut" & VbCrLf
If dMINUTE < 0 Then
dMINUTE = 0
End If
If dMINUTE <> 1 Then
cMINUTE = VbTab & dMINUTE & " minutter, eller<br>"
End If
dSECOND = DateDiff("s",TheDate,EventDate)
cSECOND = VbTab & "1 sekund" & VbCrLf
If dSECOND < 0 Then
dSECOND = 0
End If
If dSECOND <> 1 Then
cSECOND = VbTab & dSECOND & " sekunder"
End If
CDDText = CDDText & VbCrLf & "Eller:<br>" &_
"" & cYEAR & cMONTH & cDAY & cHOUR & cMINUTE & cSECOND & "<br><br>" &_
"================================================="
CalcDateDiff = CDDText
End Function
myString = CalcDateDiff(Day(Now)&"/"&Month(Now)&"/"&Year(Now)&" 23:59:59")
& "<br><br><br><br>" &_
CalcDateDiff("12/24/"&Year(Now)&" 18:00:01") &_
"<br><br><br><br>"
%>
Husk at tjekke om linieskiftene er korrekte (newsgroups er eksperter i at
dele en linie det forkerte sted!!)
Håber det kan bruges!
MVH Jonas (aka Juke)
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials