Avatar billede likedon Nybegynder
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?
Avatar billede steen_hansen Forsker
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.
Avatar billede likedon Nybegynder
19. april 2004 - 22:28 #2
sådan er det jo, problemet er bare at jeg er lidt presset af en deadline
Avatar billede eagleeye Praktikant
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
Avatar billede eagleeye Praktikant
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"
Avatar billede eagleeye Praktikant
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
Avatar billede eagleeye Praktikant
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
Avatar billede eagleeye Praktikant
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" ?
Avatar billede eagleeye Praktikant
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"
Avatar billede likedon Nybegynder
19. april 2004 - 22:56 #9
virker smid et svar
Avatar billede likedon Nybegynder
19. april 2004 - 22:57 #10
glem at det virker så ikke du havde skrevet mere. Den skal ALTID runde op.
Avatar billede likedon Nybegynder
19. april 2004 - 22:58 #11
Den sætter tilsyneladende selv 0 på i databasen
Avatar billede likedon Nybegynder
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
Avatar billede eagleeye Praktikant
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
Avatar billede likedon Nybegynder
19. april 2004 - 23:04 #14
takker
Avatar billede likedon Nybegynder
27. april 2004 - 12:11 #15
nu fnadt kunden så ud af at den altid skal runde ned, hvor skal jeg rette?
Avatar billede likedon Nybegynder
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.
Avatar billede likedon Nybegynder
27. april 2004 - 12:17 #17
næ det er vist ikke nok :O(
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