hej, Du kan skriva en egen funktion i VBA som du kan använda i frågor, formulär och rapporter, t.ex: Om jag hämtar upp alla tider i databasen först och lägger in i en tabell, Jag skrev om funktionen ovan och gjorde några anpassningar. Tror den skall funka i ASP: lyckas fortfarande inte få fram tiderna. Men slänger nog snart in handduken :/Datumfunktionalliteter och tidsdifferens hjälp!
Jag har gjort ett formulär för startdatum och tid, slutdatum och tid som ska lagras i en acessdatabas. Ska sedan göra en sida som hämtar uppp uppgiterna och visar tidsdifferensen mellan start och slut genom att använda inbyggd datumfunktionallitet.
Exresultat: Diffen är 2 dygn 4 timmar och 12 min.
Är ju rätt ny i gemet och hur tusan får jag detta rätt, lyckas inte och har prövat antal metoder.
tacksam för svar!!!
MVH
saraSv: Datumfunktionalliteter och tidsdifferens hjälp!
Public Function DateDiffInDaysHoursMinutes(StartDate As Variant, EndDate As Variant) As String
Dim sResult As String
Dim lMinutes As Long
Dim lPart As Long
If IsDate(StartDate) And IsDate(EndDate) Then
lMinutes = DateDiff("n", StartDate, EndDate)
lPart = lMinutes \ 1440
sResult = CStr(lPart) & " dygn "
lMinutes = lMinutes - lPart * 1440
lPart = lMinutes \ 60
sResult = sResult & CStr(lPart) & " timmar och "
lMinutes = lMinutes - lPart * 60
sResult = sResult & Format$(lMinutes, "0") & " minuter"
DateDiffInDaysHoursMinutes = sResult
End If
End Function
Sv:Datumfunktionalliteter och tidsdifferens hjälp!
Kan jag använda koden ovan för att få fram de bara eller måste jag länka de?
/SaraSv:Datumfunktionalliteter och tidsdifferens hjälp!
Function AddPart(Value, SingelSuffix, MulipleSuffix)
If Value = 1 Then
AddPart = Value & SingelSuffix
ElseIf Value > 1 Then
AddPart = Value & MulipleSuffix
End If
End Function
Function PrettyPeriod(StartDate, EndDate)
Dim diff
If IsDate(StartDate) And IsDate(EndDate) Then
diff = EndDate - StartDate
PrettyPeriod = AddPart(Int(diff), " dygn ", " dygn ") & _
AddPart(Hour(diff), " timme ", " timmar ") & _
AddPart(Minute(diff), " minut", " minuter")
End If
End Function
Är nöjde med att jag fick bort alla "magiska" tal. Fast beräkningen av dygn, Int(diff), utnyttjar jag kännedomen om hur datum internt representeras. Inte så snyggt.
Du använder den asp:
Nyheter
<ul>
<%
Dim rs
Dim con
Set con = CreateObject("ADODB.Connection")
con.Open Application("ConnectionString") 'Ersätt ev. med din anslutningssträng
Set rs = con.Execute("SELECT TOP 5 *" + vbCrLf + _
"FROM News" + vbCrLf + _
"ORDER BY NewsDate DESC")
Do Until rs.EOF
Response.Write "<li>" + _
"" & rs("NewsTitle") & """ + _
" publicerad för " & PrettyPeriod(rs("NewsDate"), Now()) + " sedan" + _
"</li>"
rs.MoveNext
Loop
rs.Close
con.Close
%>
</ul>
Sv: Datumfunktionalliteter och tidsdifferens hjälp!