19. april 2004 - 22:16
Der er
16 kommentarer og 1 løsning
skal skirve klokken på den næste halve time i databasen men
skal skirve klokken på den næste halve time i databasen men beholde det almindelig format: 19-04-2004 16:34:14 skal blive til: 19-04-2004 17:00:00 og 19-04-2004 23:34:14 skal blive til 20-04-2004 08:00:00 ja i så rigtigt den skal lige springe nogle timer frem når den når kl. 18.00 altså dem der bliver smidt databasen efter kl. 18.00 skal have tiden 08.00 svært?
Annonceindlæg fra Lenovo
19. april 2004 - 22:25
#1
Det mener jeg bestemt ikke, alt er jo nemt, når man har lært det. Kigger lige med.
19. april 2004 - 22:28
#2
sådan er det jo, problemet er bare at jeg er lidt presset af en deadline
19. april 2004 - 22:28
#3
Du kan gøre noget i stil med dette: DatoTid = "19-04-2004 16:34:14" if Int(hour(DatoTid)) >= 18 then DatoTid = DateAdd("d",1, CDate(Day(DatoTid)&"-"&Month(DatoTid)&"-"&Year(DatoTid))) & " " & 08:00:00" else mm = minute(DatoTid) addmm = 30-mm if addmm < 0 then addmm = addmm+30 tmp=Day(DatoTid) & "-"&Month(DatoTid)&"-"&Year(DatoTid)&" "&Hour(DatoTid)&":"&mm&":00" DatoTid = DateAdd("n", addmm, tmp) end if
19. april 2004 - 22:31
#4
hov der mangler et " i denne linje: DatoTid = DateAdd("d",1, CDate(Day(DatoTid)&"-"&Month(DatoTid)&"-"&Year(DatoTid))) & " " & 08:00:00" Sådan her: DatoTid = DateAdd("d",1, CDate(Day(DatoTid)&"-"&Month(DatoTid)&"-"&Year(DatoTid))) & " " & "08:00:00"
19. april 2004 - 22:41
#5
og skal du havde leading 0 på dag,måned,time og minutter så må du lige ud vide det lidt med en ekstra linje som her: DatoTid = "19-04-2004 16:34:14" if Int(hour(DatoTid)) >= 18 then DatoTid = DateAdd("d",1, CDate(Day(DatoTid)&"-"&Month(DatoTid)&"-"&Year(DatoTid))) & " " & "08:00:00" else mm = minute(DatoTid) addmm = 30-mm if addmm < 0 then addmm = addmm+30 tmp=Day(DatoTid) & "-"&Month(DatoTid)&"-"&Year(DatoTid)&" "&Hour(DatoTid)&":"&mm&":00" DatoTid = DateAdd("n", addmm, tmp) DatoTid = Right("0" & day(DatoTid),2) & "-" & Right("0" & month(DatoTid),2) & "-" & Year(DatoTid) & " " & Right("0" & hour(DatoTid),2) & ":" & Right("0" & minute(DatoTid),2) & ":00" end if Response.write DatoTid
19. april 2004 - 22:44
#6
der var jeg så for hurtig igen den skal være uden for if sætningen før man udskriver eller gemmer det i databasen :) DatoTid = "19-04-2004 16:34:14" if Int(hour(DatoTid)) >= 18 then DatoTid = DateAdd("d",1, CDate(Day(DatoTid)&"-"&Month(DatoTid)&"-"&Year(DatoTid))) & " " & "08:00:00" else mm = minute(DatoTid) addmm = 30-mm if addmm < 0 then addmm = addmm+30 tmp=Day(DatoTid) & "-"&Month(DatoTid)&"-"&Year(DatoTid)&" "&Hour(DatoTid)&":"&mm&":00" DatoTid = DateAdd("n", addmm, tmp) end if DatoTid = Right("0" & day(DatoTid),2) & "-" & Right("0" & month(DatoTid),2) & "-" & Year(DatoTid) & " " & Right("0" & hour(DatoTid),2) & ":" & Right("0" & minute(DatoTid),2) & ":00" Response.write DatoTid
19. april 2004 - 22:51
#7
nu det bare mig der skriver en helt masse, men der kan måske opstå en uheldighed. Hvis der står: "19-04-2004 16:30:14" eller "19-04-2004 16:34:14" vil den jeg har vist skrive "19-04-2004 16:30:00" Men hvad skal der ske når der står: "19-04-2004 16:30:00" skal det give "19-04-2004 17:00:00" eller "19-04-2004 16:30:00" ?
19. april 2004 - 22:53
#8
ARh copy paste crap.. Anden linje i stidste kommentar skal være: Hvis der står: "19-04-2004 16:30:14" eller "19-04-2004 16:30:00" vil den jeg har vist skrive "19-04-2004 16:30:00"
19. april 2004 - 22:56
#9
virker smid et svar
19. april 2004 - 22:57
#10
glem at det virker så ikke du havde skrevet mere. Den skal ALTID runde op.
19. april 2004 - 22:58
#11
Den sætter tilsyneladende selv 0 på i databasen
19. april 2004 - 22:59
#12
i det mindste i access, det skal godt nok flyttes over i mssql, men forventer da ikke det vil give problemer
19. april 2004 - 23:00
#13
hvis den altid skal runde op så gør du bare sådan her, der er tilføjet et = i linjen : if addmm <= 0 then addmm = addmm+30 Så koden bliver: DatoTid = "19-04-2004 16:30:14" if Int(hour(DatoTid)) >= 18 then DatoTid = DateAdd("d",1, CDate(Day(DatoTid)&"-"&Month(DatoTid)&"-"&Year(DatoTid))) & " " & "08:00:00" else mm = minute(DatoTid) addmm = 30-mm if addmm <= 0 then addmm = addmm+30 tmp=Day(DatoTid) & "-"&Month(DatoTid)&"-"&Year(DatoTid)&" "&Hour(DatoTid)&":"&mm&":00" DatoTid = DateAdd("n", addmm, tmp) end if DatoTid = Right("0" & day(DatoTid),2) & "-" & Right("0" & month(DatoTid),2) & "-" & Year(DatoTid) & " " & Right("0" & hour(DatoTid),2) & ":" & Right("0" & minute(DatoTid),2) & ":00" Response.write DatoTid
19. april 2004 - 23:04
#14
takker
27. april 2004 - 12:11
#15
nu fnadt kunden så ud af at den altid skal runde ned, hvor skal jeg rette?
27. april 2004 - 12:16
#16
er de bare de her 2 linier der skal byttes: if addmm < 0 then addmm = addmm+30 if addmm <= 0 then addmm = addmm+30 det skriver du men jeg kan ikke lige se det.
27. april 2004 - 12:17
#17
næ det er vist ikke nok :O(
Kurser inden for grundlæggende programmering