Avatar billede jsc Nybegynder
18. april 2005 - 22:26 Der er 20 kommentarer

dato problem i if-then-sætning

Hej Eksperter...

Hvorfor returnere følgende kode altid datoen i morgen?

også selvom "31-12-1899" findes i stringen...

midlertidig = tiden
if tiden = replace(midlertidig, "31-12-1899", "noget") then

datoen = date

else

arrtiden = split(tiden, " ")
tiden = arrtiden(ubound(arrtiden))
datoen = DateAdd("d", 1, date)

end if

/jsc
Avatar billede kalp Novice
18. april 2005 - 23:02 #1
her ligger du 1 dag til dato'en

datoen = DateAdd("d", 1, date)

eller du mener måske hvorfor den altid køre else delen?
Avatar billede jsc Nybegynder
18. april 2005 - 23:07 #2
ja.. hvorfor kører den altid det? - også selvom det ikke burde..

/jsc
Avatar billede kalp Novice
18. april 2005 - 23:24 #3
hmm.. måske forstår jeg ikke sætningen men kan egentlig ikke se hvordan den skulle kunne virke..

midlertidig er det samme som tiden..  så den er god nok.. men hvad med 31-12-1899 og noget?
Avatar billede jsc Nybegynder
18. april 2005 - 23:29 #4
jeg har en streng med klokkenslæt i... når den bliver over 00:00:00 vha. DataAdd kommer stringen pludselig til at hedde: dd-mm-yyyy hh:mm:ss - derfor splitter jeg stringen op, når den string kommer... den dato der bliver sat på stringen er mærkeligt nok altid 31-12-1899, så det er nemt nok at fjerne... og det er heller ikke det, der er problemet... problemet er bare, at når stringen får denne dato på, så betyder det, at dags dato er overskredet og at tidspunktet er næstedag. - derfor laver jeg datoen = datadd("d", 1, date), så jeg kan få en næste dato ud..

problemet er bare at det altid er næste dato, der kommer ud - mærkeligt nok - forstår ikke hvorfor dags dato ikke kommer...

Kender du evt en bedre løsning på det problem, så vil jeg meget gerne høre om det!

/jsc
Avatar billede kalp Novice
18. april 2005 - 23:34 #5
så hvis jeg forstod det rigtigt ligger en del af problemet i denne dato faktisk?
31-12-1899

for at undgå den skal der sikkert # rundt om.. ikke her

if tiden = replace(midlertidig, "31-12-1899", "noget") then

men der hvor dato'en bliver sat ind.. hvis det er der så skal de rundt om der. fx

if tiden = replace(midlertidig, #"31-12-1899"#, "noget") then
Avatar billede jsc Nybegynder
18. april 2005 - 23:36 #6
den bliver du lige nødtil at vise noget bedre... du kan ikke gøre det her:

if tiden = replace(midlertidig, #"31-12-1899"#, "noget") then

/jsc
Avatar billede kalp Novice
18. april 2005 - 23:39 #7
tænkte jeg nok men hvor kommer denne dato da fra? 31-12-1899
Avatar billede jsc Nybegynder
18. april 2005 - 23:40 #8
den kommer mærkeligt nok, når man tilføjer timer nok til at klokkenslettet overskrider 00:00:00....

/jsc
Avatar billede kalp Novice
18. april 2005 - 23:47 #9
det er den kode jeg må se :) det er der #'erne skal sættes
Avatar billede jsc Nybegynder
18. april 2005 - 23:49 #10
tiden = DateAdd("h", -1, time)      'Hvis den overskrider 00:00:00 så kommer den til at se sådan ud: 31-12-1899 00:01:00

midlertidig = tiden

if tiden = replace(midlertidig, "31-12-1899", "noget") then
datoen = date
else
arrtiden = split(tiden, " ")
tiden = arrtiden(ubound(arrtiden))

datoen = DateAdd("d", 1, date)
end if

/jsc
Avatar billede kalp Novice
18. april 2005 - 23:54 #11
tiden = #DateAdd("h", -1, time)#

normal roder jeg med dem i sql sætninger så de lige til at sætte på:)  så ved ikke om man kan sådan

if tiden = replace(midlertidig, "19-04-2005", "noget") then

hvad gør den der?
Avatar billede jsc Nybegynder
18. april 2005 - 23:56 #12
Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EA)
Der er en syntaksfejl
/s/tider.asp, line 178, column 8
tiden = #DateAdd("h", 1, time)#
-------^

hvad gør #?
Avatar billede kalp Novice
19. april 2005 - 00:04 #13
Jeg er ikke sikker på om man kun bruger det når der skal gemmes i en access database.. men det skal der i hvertfald rundt dato'er ellers får man præcis den dato du får

31-12-1899
Avatar billede jsc Nybegynder
19. april 2005 - 00:06 #14
jeg skal jo ikke bruge datoen til noget, jeg skal bruge dags dato og dags dato + 1....

jeg er ligeglad hvordan jeg kommer frem til de to datoer, de skal bare hører sammen med tidspunktet!

/jsc
Avatar billede kalp Novice
19. april 2005 - 00:18 #15
"Kender du evt en bedre løsning på det problem, så vil jeg meget gerne høre om det!"

Tror jeg hæler til den:)
Forklar mig lige hvad det er du gerne vil.. sorry ved det er irriterende, men skal lige forstå dig korrekt. Du har jo en masse dato'er med så bliver lidt forvirret..
ligner noget betalingsfrist du måske prøver at lave eller?
Avatar billede jsc Nybegynder
19. april 2005 - 00:22 #16
jeg er ved at opstille noget med tidszoner og dato iforhold til de forskellige tidszoner.... lidt ligesom på www.klokken.dk - læg mærke til at når klokken kommer over 00:00 i en tidszone, så skriver datoen, og det er det, jeg vil opnå i et script...

jeg har bare kun ET tidspunkt, der behandles udfra hvad man havde før, og derved kommer jeg på et tidspunkt frem til et tidspunkt over 00:00, som derved giver nogle problemer. (problemer jeg troede jeg havde løst via den if-then sætning jeg skrev fra start)

/jsc
Avatar billede kalp Novice
19. april 2005 - 00:34 #17
Du burde kunne gøre det uden at skulle tænke på minutter osv.
fx noget med om tiden er over dags dato.. (eller mindre?)
for den kan jo selv se om kl. er over 00:00 eller ej.

midlertidig = tiden
if tiden > date() then

datoen = date

else

arrtiden = split(tiden, " ")
tiden = arrtiden(ubound(arrtiden))
datoen = DateAdd("d", 1, date)

end if
Avatar billede jsc Nybegynder
19. april 2005 - 00:38 #18
ja, sådan ville jeg også mene det ville være, men det viser udelukkende 20-04-2005 og det er jo først i morgen...

/jsc
Avatar billede kalp Novice
19. april 2005 - 00:40 #19
Ja nu fordi kl. er lige blevet over 00:00

men så bare skriv.. så trækker vi en dag fra..

if tiden > DateAdd("d", -1, date) then
Avatar billede jsc Nybegynder
19. april 2005 - 00:42 #20
det hjælper jo ikke noget...

datoen er jo ikke 18-04-2005 over hele verden ligenu... og det siger scriptet...  fatter ikke hvad fejlen er :(

/jsc
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