Avatar billede bootie Nybegynder
10. januar 2003 - 02:55 Der er 16 kommentarer og
2 løsninger

Afrund now til hele time!

Hej xperter

Hvordan afrunder jeg lige 10-01-2003 02:52:25 til 10-01-2003 03:00:00?
Avatar billede bootie Nybegynder
10. januar 2003 - 02:56 #1
Jeg har selvfølgelig lagt datoen i en variable med en now
Avatar billede oasen Nybegynder
10. januar 2003 - 09:09 #2
Jeg ved faktisk ikke, om der findes en indbygget funktion til dette formål, men ellers har jeg lavet denne til dig:


Function Afrund(Tid)
  Afrund = Hour(Tid) & ":00:00"
  If DateDiff("s", Afrund, FormatDateTime(Tid, vbLongTime)) > 1800 Then
      Afrund = Hour(DateAdd("h", +1, Tid)) & ":00:00"
  End If
End Function

Response.Write Afrund("10-01-2003 02:52:25")
Avatar billede heko124 Nybegynder
10. januar 2003 - 09:52 #3
Det var en lidt besværlig måde...

test = DateAdd("n", 30, "10-01-2003 02:52:25")
MsgBox Format(test, "dd-mm-yyyy hh:00:00")


henrik ;-)
Avatar billede oasen Nybegynder
10. januar 2003 - 09:59 #4
Er du ikke i en forkert kategori?
Avatar billede heko124 Nybegynder
10. januar 2003 - 10:01 #5
sorry jo det er jo asp jeg har kodet i vb sorry

henrik :-(
Avatar billede oasen Nybegynder
10. januar 2003 - 10:03 #6
I know ;-)
Avatar billede bootie Nybegynder
10. januar 2003 - 10:34 #7
De fleste VBScript spørgsmål stilles vel i ASP når nu det er default language..
Det er jeg da i hvert fald over bevist om :)
Avatar billede bootie Nybegynder
10. januar 2003 - 10:47 #8
oasen>
Hvis jeg køre funktionen på min variable indeholdende format 10-01-2003 02:52:25 udskriver den kun tidspunkt 03:00:00

Hvordan kan jeg få den til at beholde resten?
Avatar billede heko124 Nybegynder
10. januar 2003 - 10:57 #9
Med fare for at blamere mig yderligere så er her et forsøg:

test = "10-01-2003 02:52:25"
timen = right("0" & hour(DateAdd("n", 30, test)),2)
test = left(test,11) & timen & ":00:00"
Response.write test

henrik :-)
Avatar billede heko124 Nybegynder
10. januar 2003 - 11:14 #10
Der er to problemer i dit spørgsmål nemlig afrunding og formatering begge dele er besværlige i asp.

Afrundingen findes der ingen indbyggede funktioner til i asp hvorfor jeg ligger en halv time til med dateadd hvilket sikre at timen hvil være korrekt afrundet (Det er det samme som oasen gør han bruger blot sek.)

Det andet problem er formatering
Der findes en funktion til dette i asp: formatdatetime, men den er temmelig middelmådig da den kun kan formatere til nogle få forudbestemte formater, hvilket betyder at man bliver nødt til at lave en masse string gymnastik for at få det format man ønsker...

henrik :-)
Avatar billede oasen Nybegynder
10. januar 2003 - 11:22 #11
Function Afrund(Streng)
  Tid = FormatDateTime(Tid, vbLongTime)
  Dato = FormatDateTime(Tid, vbShortDate)
  Afrund = Hour(Tid) & ":00:00"
  If DateDiff("s", Afrund, Tid) > 1800 Then
      Afrund = Hour(DateAdd("h", +1, Tid)) & ":00:00"
  End If
  Afrund = Dato & " " & Afrund
End Function

Response.Write Afrund("10-01-2003 02:52:25")
Avatar billede oasen Nybegynder
10. januar 2003 - 11:26 #12
Den afgørende forskel på ASP og VB er, at ASP er serversided og VB er clientsided
ASP er baseret på VB - ikke omvendt ;)
Avatar billede heko124 Nybegynder
10. januar 2003 - 11:33 #13
ja det er korrekt at asp er et subset af VB, men jeg kan ikke se at serverside/clientsider har noget at gøre med hvilke funktioner der er til rådighed i sproget... mht. formateringsfunktioner er det klart at for predefinerede formater der bygger på os-indstillinger er det serverens indstillinger der bestemmer formatet, men jeg kan ikke se nogen grund til at funktionen datetimeformat ikke kan tage fx "dd-mm-yyyy" som sidste parameter ???

henrik :-)
Avatar billede oasen Nybegynder
10. januar 2003 - 12:03 #14
De fleste funktioner er jo mere eller mindre ens. Derfor mener jeg, at den væsentligste forskel er afviklingssiden.

Hvor er det dog fustrerende, at ham reklame-manden konstant sidder oven i tråden.
Avatar billede bootie Nybegynder
10. januar 2003 - 12:51 #15
oasen>
Ja, hvad f***** sker der lige med den reklame mand!
Avatar billede bootie Nybegynder
10. januar 2003 - 12:55 #16
Funktionen laver nu 13-01-2003 12:53:51 om til 30-12-1899 0:00:00!!
Avatar billede hossein Nybegynder
10. januar 2003 - 22:29 #17
<%@ Language=VBScript %>
<%session.LCID = 1030%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%
dd = "10-01-2003 02:52:25"
sf =formatdatetime(DateAdd("h", +1, dd ), vblongtime)%>
<%mm =left(SF,2)%>
<%TIDEN = date() &" "& mm &":00:00"%>
<%=TIDEN%>
</BODY>
</HTML>
Avatar billede oasen Nybegynder
10. januar 2003 - 22:30 #18
Ellers så brug den sidste af heko124 - den virker fint, og er lidt kortere end min.
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