/ 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
Marker dato i 14 dage.
Fra : Fx.


Dato : 20-02-04 23:31

Jeg har et udtræk af en fødselsdagsdato i en Access database for
eksempel: 20.05.1985

hvordan får jeg denne dato til at blive skrevet med fed i 14
dage, 14 dage før den nuværende dato 20.02.2004

Er der en der kan vise mig et eksempel på dette vil jeg blive
glad.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jørn Andersen (22-02-2004)
Kommentar
Fra : Jørn Andersen


Dato : 22-02-04 14:00

On Fri, 20 Feb 2004 22:30:43 +0000 (UTC), Fx. <type@mailme.dk> wrote:

>Jeg har et udtræk af en fødselsdagsdato i en Access database for
>eksempel: 20.05.1985
>
>hvordan får jeg denne dato til at blive skrevet med fed i 14
>dage, 14 dage før den nuværende dato 20.02.2004

Brug DateDiff-funktionen - noget i retning af:
If DateDiff("d", Date, myDate) < 15 Then
Response.Write "<strong>" & myDate & "</strong>"
Else
Response.Write myDate
End If

- hvor myDate er den dato-værdi du vil teste

Test evt. med forskellige værdier af x:
x = 13
myDate = DateAdd("d", x, Now())

Good luck!

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

Faxholm (22-02-2004)
Kommentar
Fra : Faxholm


Dato : 22-02-04 22:40

Tussen tak for det detaljerede svar men jeg har desværre stadigvæk
problemer.

Mit udtræk fra DB. vil eksempelvis se således ud: 10-07-1982 og da jeg
også har årstal med giver det mig det problem at hvis jeg bruger date
funktionen kommer årstalet også med 2004 hvordan undgår jeg det.

Den udgave som jeg bruger nu ser således ud:

<% AktuelDato = Right("0" & Day(Date()),2) & "-" & Right("0" &
Month(Date()),2) %>
<%
'Eksempel: Birthday = "10-07-1982"
If Left(rs("Birthday"),5)= AktuelDato Then %>
<b><%= rs("Birthday") %></b>
<%Else%>
<%= rs("Birthday") %>
<%End If%>

Men i denne udgave er det kun den aktuelle dato der bliver markeret med
fed og mit ønske er at den skal være fed i 14 dage altså 14 dage før den
aktuelle dato hvordan griber jeg det an.

Det er sikkert helt forkert sådan som jeg har lavet min kode på så jeg
vil blive rigtig glad hvis der er en anden måde at gøre det på så det
virker.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (23-02-2004)
Kommentar
Fra : Jørn Andersen


Dato : 23-02-04 06:46

On Sun, 22 Feb 2004 21:40:19 +0000 (UTC), Faxholm <type@mailme.dk>
wrote:

>Tussen tak for det detaljerede svar men jeg har desværre stadigvæk
>problemer.
>
>Mit udtræk fra DB. vil eksempelvis se således ud: 10-07-1982

Det kan godt være det ser sådan ud, men hvis din databaseværdi er af
Dato/Tid-typen, så indeholder den også en time/minut/sekund-værdi.

Min pointe med denne detalje er, at du skal glemme at fokusere på
*formatet* og i stedet fokusere på *værdien*.
Hvis det lyder lidt krypotisk, så skulle det gerne blive tydeligere
herunder:

>og da jeg
>også har årstal med giver det mig det problem at hvis jeg bruger date
>funktionen kommer årstalet også med 2004 hvordan undgår jeg det.

Ok - det vender vi tilbage til.

>Den udgave som jeg bruger nu ser således ud:
>
><% AktuelDato = Right("0" & Day(Date()),2) & "-" & Right("0" &
>Month(Date()),2) %>

Her fokuserer du helt tydeligt på dato-*formatet* - ikke på *værdien*.
(Du behandler det som en tekststreng, ikke en datoværdi.)
Det samme gør du herunder:

>'Eksempel: Birthday = "10-07-1982"
>If Left(rs("Birthday"),5)= AktuelDato Then %>
><b><%= rs("Birthday") %></b>
><%Else%>
><%= rs("Birthday") %>
><%End If%>

>Men i denne udgave er det kun den aktuelle dato der bliver markeret med
>fed og mit ønske er at den skal være fed i 14 dage altså 14 dage før den
>aktuelle dato hvordan griber jeg det an.


Når jeg oven for har understreget, at man skal "behandle dato/tid som
dato/tid", så er det fordi det på sigt giver færrest problemer.
Men: Dato/tid er ikke uproblematisk, da der flere en del forskellige
nationale versioner, og da der ikke er enkle regneregler (som fx i
ti-tals-systemet).
Og sådan noget som alder og fødselsdage kan være rigtigt besværligt.

-----------------------------
En løsning kunne være:

datFoedselsdag = rs("BirthDay")

' Find næste fødselsdag (samme dato, men i år):
datNaesteFoedselsdag = DateSerial(Year(Now()), Month(datFoedselsdag),
Day(datFoedselsdag))
' NB: Ovenstående skal være på én linie

' Hvis fødselsdagen i år har været, lægger vi et år til:
If DateDiff("d", Date, datNaesteFoedselsdag) < 0 Then
datNaesteFoedselsdag = DateAdd("yyyy", 1, datNaesteFoedselsdag)
End If

' Find antal dage til næste fødselsdag
intDiff = DateDiff("d", Date, datNaesteFoedselsdag)

If intDiff < 15 Then
Response.Write "<strong>" & datFoedselsdag & "</strong>"
Else
Response.Write datFoedselsdag
End If

' Denne sidste er mest for sjov:
Response.Write "<br />" & vbcrlf & _
"Der er " & intDiff & " dage til næste fødselsdag.<br />"

-----------------------------

Tag et kig på:
DateSerial
DateAdd
DateDiff
- og se hvad de gør - det er en god træning i at håndtere datoer

Bemærk, at i mit løsningsforslag er datoer hele vejen behandlet som
datoer - ikke som tekst. Den eneste fejl/"smutter" der kan opstå er
hvis der anvendes forsklligt sprog i database og i dit script.

Kig evt.:
<url: http://www.asp-faq.dk/article/?id=47>
- som viser hvordan man sætter rigtig sprogkode


>Det er sikkert helt forkert sådan som jeg har lavet min kode på så jeg
>vil blive rigtig glad hvis der er en anden måde at gøre det på så det
>virker.

Forkert er det vel kun, hvis det ikke virker efter hensigten.
Der eksisterer ingen absolutte love inden for kodning, men man har da
lov til at lære af andres fejl - og sine egne.

Good luck!

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

Faxholm (24-02-2004)
Kommentar
Fra : Faxholm


Dato : 24-02-04 00:01

Tussen tak for hjælpen Jørn Andersen så lykkedes det endeligt takket været
din hjælp med en utrolig illustrativ og forklarende måde at hjælpe på.

Men hvis jeg må have lov at stille et sidste spørgsmål
I DB. har jeg en dato der ser således ud: 07-08-1975 men når den udskrives
ser den således ud: 7-08-1975 der mangler et 0 på dagen men på måneden er
der et 0, hvordan får jeg et 0 på dagen hvis tallet er under 10 så datoen
udskrives som den står i DB.

Men dette er kun et tillægsspørgsmål fordi dato funktionen virker nu og det
er jeg rigtig glad for og det sidste er et synsmæssigt spørgsmål.

M.v.h. Faxholm

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørgen Müller (24-02-2004)
Kommentar
Fra : Jørgen Müller


Dato : 24-02-04 08:25

Faxholm skrev:
>I DB. har jeg en dato der ser således ud: 07-08-1975 men når den udskrives
>ser den således ud: 7-08-1975 der mangler et 0 på dagen men på måneden er
>der et 0, hvordan får jeg et 0 på dagen hvis tallet er under 10 så datoen
>udskrives som den står i DB.


Du skal bruge FormatDateTime(dindato, 2) når du udskriver den fra databasen
og til siden.

VB dokumentationen er din ven ....
http://www.html.dk/dokumentation/vbscript/HTML/vsfctFormatDateTime.htm

--
Med Venlig Hilsen
Jørgen Müller



Fx. (24-02-2004)
Kommentar
Fra : Fx.


Dato : 24-02-04 23:02

Perfekt....... tak!
Med Venlig Hilsen
Faxholm

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

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

Månedens bedste
Årets bedste
Sidste års bedste