Lars Hoffmann wrote in dk.edb.internet.webdesign.serverside.asp:
> morten Hygum wrote:
> > Jeg er ved at lave en nedtælling til en dato i asp,
> > Jeg vil have den til at begynde 10 dage før og så stoppe når
> > fødselsdagen er ovre.
> > Jeg har fået den til at vise det på dagen ved hjælp af denne:
> > If "6. marts" = DanskDato(Now) Then
> > Response.Write "<br>Ernst fylder " & Minus(,1947) & " år i dag"
> > End If
> >
> > DanskDato er lavet ud fra
> >
http://www.html.dk/tutorials/asp/lektion9.asp
> >
> > Problemet er jo så at den faktisk bare sammenligner de tegn der
> > har de samme pladser i den string, som datoen jo er.
>
> Af (bitter) erfaring kan jeg fortælle dig at det altid er best at behandle
> datoer som datoer (og ikke begynde at behandle dem som tekststrenge). Så
> undgår man problemer med at forskellige serveropsætninger behandler datoerne
> forskelligt.
>
> Hvis jeg har forstået dig ret, vil du lave noget der viser hvor mange dage der
> er til en bestemt dato, og i tilfælde af at det er idag, vil du vise hvor
> mange år Ernst fylder.
>
> Først smider vil lige Ernst+s fødselsdag ind i en variabel:
>
> <%
> dim foedselsdag
> foedselsdag = DateSerial(1947, 4, 14)
> %>
>
>
> Nu er vi sikre på at datatypen er en dato og så er det hele meget nemmere. Lad
> os lave en funktion der tæller ned til den 14. april 2005 (Ernsts fødselsdag)
>
> <%
> function dageTilFoedselsdag(foedselsdag)
> detteAarsFoedselsdag = dateSerial(year(date()), month(foedselsdag),
> day(foedselsdag)) 'Pas på, denne linie er knækket.
> dageTilFoedselsdag = datediff("d",date(),detteAarsFoedselsdag)
> end function
> %>
>
> Så skal vi til til sidst bare bruge vores funktion:
>
> <%
> dim dageTilFoedselsdag
> dageTilFoedselsdag = udregnDageTilFoedselsdag(foedselsdag)
> %>
>
> Og så er resten bare at vise resultatet:
>
> <%
> if dageTilFoedselsdag > 0 then
> response.Write("Der er " & dageTilFoedselsdag & " dag(e) til Ernst's
> fødselsdag") 'knækket linie
> elseif dageTilFoedselsdag = 0 then
> response.write("Ernst bliver idag " & datediff("yyyy",foedselsdag,date()) & "
> år gammel" )'knækket linie
> else
> response.write("Nu er det for sent at købe gaver til Ernst" )
> end if
> %>
>
>
> Hvis du endelig vil vise noget med en dansk tekst, kan du lave en unktion der
> udskriver måneder eller dage på dansk, men husk at selv udregningen bør laves
> med datatypen date.
>
>
> Med venlig hilsen
> Lars Hoffmann
Mange tak. Det virker bare rigtigt godt. Det var dejligt at få det problem ud af
verden.
Det er ikke aktuelt lige nu, men hvad gør man, hvis der er en der har fødselsdag
1. januar og man stadig gerne vil se det ti dage før?
Med venlig hilsen
Morten Hygum
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials