/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Begynder spørgsmål vedr. dato og tidsrum
Fra : Johannes Veje


Dato : 14-09-02 21:54

Jeg skal bruge et script som i tidsrummet fra 16/12 og frem til 1/6
fortæller antal dage frem til 1/6, altså et antal dage (tal)
i tidsrummet fra 16/6 til 1/12 skal den også fortælle antal dage frem til
1/12
Fra 1/6 til 15/6 og igen 1/12 til 15/12 skal scriptet skrive en tekst for
mig.
Jeg har prøvet med følgende, men det virker bare røv og nøgler, er der en
barmhjertig sjæl der kan se hoved og hale i mit problem ?

<%
timeStart = date
tid1 = "1/6"
tid2 = "16/6"
tid3 = "1/12"
tid4 = "16/12"

if "1/1" <= timeStart < "1/6" then
dage = (datediff("d", tid1, now()))
elseif "1/6" <= timeStart < "16/6" then
dage = "inskud nu"
elseif (16/6) <= timeStart < (1/12) then
dage = (datediff("d", tid3, now()))

elseif "1/12" <= timeStart < "16/12" then
dage = "inskud nu"
elseif timeStart <= "31/12" then
dage = (datediff("d", "31-12", now()))+(datediff("d", tid1, "01-01"))
end if

Response.Write dage
%>

--
Med venlig hilsen
Johs. V.




 
 
Jørn Andersen (15-09-2002)
Kommentar
Fra : Jørn Andersen


Dato : 15-09-02 06:38

On Sat, 14 Sep 2002 22:54:28 +0200, "Johannes Veje" <jv@jv-data.dk>
wrote:

>Jeg skal bruge et script som i tidsrummet fra 16/12 og frem til 1/6
>fortæller antal dage frem til 1/6, altså et antal dage (tal)
>i tidsrummet fra 16/6 til 1/12 skal den også fortælle antal dage frem til
>1/12
>Fra 1/6 til 15/6 og igen 1/12 til 15/12 skal scriptet skrive en tekst for
>mig.
>Jeg har prøvet med følgende, men det virker bare røv og nøgler, er der en
>barmhjertig sjæl der kan se hoved og hale i mit problem ?

Når du nu har fundet ud af, at der er en funktion, der hedder
DateDiff, hvorfor bruger du så ikke den til det hele
Når du bruger fx:
tid1 = "1/6"
så er det jo ikke en dato, men en tekststreng og sammenligning med en
dato vil sjældent give et fornuftigt resultat.
Desuden kan man ikke bruge "dobbelte mindre end":
a < b < c

Du kunne sikkert også få gavn af DateSerial-funktionen:
Returns a Variant of subtype Date for a specified year, month, and
day.
Syntax: DateSerial(year, month, day)


En mulig løsning kunne være:

<%
datTimeStart = date

' Brug denne linie til at teste med:
' datTimeStart = DateSerial(2002, 1, 1)

If Month(datTimeStart) < 6 Then
dage = DateDiff("d", datTimeStart, DateSerial(Year(datTimeStart), 6,
1))
ElseIf DateDiff("d", datTimeStart, DateSerial(Year(datTimeStart), 6,
16)) > 0 Then
dage = "indskud nu"
ElseIf Month(datTimeStart) < 12 Then
dage = DateDiff("d", datTimeStart, DateSerial(Year(datTimeStart),
12, 1))
ElseIf DateDiff("d", datTimeStart, DateSerial(Year(datTimeStart), 12,
16)) > 0 Then
dage = "indskud nu"
Else
dage = DateDiff("d", datTimeStart, DateSerial(Year(datTimeStart) +
1, 6, 1))
End If

Response.Write dage
%>

NB: Vær lige opmærksom på at fjerne linieombrud i koden.


Good luck!

--
Jørn Andersen,
Brønshøj

Johannes Veje (15-09-2002)
Kommentar
Fra : Johannes Veje


Dato : 15-09-02 17:39

Tusind tak, det ser bare så ufattelig nemt ud når du gør det, og det virker,
men ..
>
> En mulig løsning kunne være:
>
> <%
> datTimeStart = date
>
> ' Brug denne linie til at teste med:
> ' datTimeStart = DateSerial(2002, 1, 1)
>
> If Month(datTimeStart) < 6 Then
> dage = DateDiff("d", datTimeStart, DateSerial(Year(datTimeStart), 6,
> 1))
> ElseIf DateDiff("d", datTimeStart, DateSerial(Year(datTimeStart), 6,
> 16)) > 0 Then
> dage = "indskud nu"
> ElseIf Month(datTimeStart) < 12 Then
> dage = DateDiff("d", datTimeStart, DateSerial(Year(datTimeStart),
> 12, 1))
> ElseIf DateDiff("d", datTimeStart, DateSerial(Year(datTimeStart), 12,
> 16)) > 0 Then
> dage = "indskud nu"
> Else
> dage = DateDiff("d", datTimeStart, DateSerial(Year(datTimeStart) +
> 1, 6, 1))
> End If

jeg forstår ikke lige hvad 1,6,1 står for. Er den yy.mm.dd ?

>
> Response.Write dage
> %>
>
> NB: Vær lige opmærksom på at fjerne linieombrud i koden.
>
>
> Good luck!
>
> --
> Jørn Andersen,
> Brønshøj

mvh
Johs.



Peter Lykkegaard (15-09-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 15-09-02 21:21


Johannes Veje <jv@jv-data.dk> skrev i en
nyhedsmeddelelse:am2fph$1v74$1@news.cybercity.dk...

> > dage = DateDiff("d", datTimeStart, DateSerial(Year(datTimeStart) +
> > 1, 6, 1))
> > End If
>
> jeg forstår ikke lige hvad 1,6,1 står for. Er den yy.mm.dd ?
>
Year(datTimeStart) + 1 = År
6 = Måned
1 = Dag

DateSerial(<år>, <måned>, <dag>)

mvh/Peter Lykkegaard







Jørn Andersen (15-09-2002)
Kommentar
Fra : Jørn Andersen


Dato : 15-09-02 22:45

On Sun, 15 Sep 2002 18:39:20 +0200, "Johannes Veje" <jv@jv-data.dk>
wrote:

>Tusind tak, det ser bare så ufattelig nemt ud når du gør det, og det virker,
>men ..

Jeg er da glad for at det virker, men det eneste jeg har gjort er, at
jeg engang brugte en del tid på at kigge lidt rundt i VB
Script-dokumentationen.
Ikke at jeg kan huske alle funktionerne, men nu ved jeg, hvad jeg skal
lede efter.

VB Script-dokumentationen er faktisk ret nem at have med at gøre, og
der er masser af gode eksempler.

Se online:
<URL:
http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28001169>

Bedre er det dog at downloade den og installere som Windows Help File
(.chm-format):
<URL:
http://www.msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/728/msdncompositedoc.xml&frame=true>
eller direkte:
<URL:
http://download.microsoft.com/download/winscript56/Install/5.6/W982KMeXP/EN-US/scrdoc56en.exe>


Good luck!

--
Jørn Andersen,
Brønshøj

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste