Avatar billede jacand Nybegynder
08. februar 2003 - 20:41 Der er 25 kommentarer og
1 løsning

Over/under 18

Jeg prøver at lave en kode er viser om personen er over eller under 18, men jeg kan ikke lige få det til at virke, er der en der kan hjælpe mig.

datee = "03-02-1993"
NyDato = DateAdd("yyyy", -18, date())
if nydato > datee then
response.write "du er under 18"
else
response.write "du er over 18"
end if
Avatar billede somaliomar Praktikant
08. februar 2003 - 20:46 #1
datee = "03-02-1993"
if datediff("yyyy",datee, now) < 18 then
response.write "du er under 18"
else
response.write "du er over 18"
end if
Avatar billede jacand Nybegynder
08. februar 2003 - 20:51 #2
Tak :-)
Avatar billede somaliomar Praktikant
08. februar 2003 - 20:55 #3
Jeg takker for point :)
Avatar billede arne_v Ekspert
08. februar 2003 - 21:31 #4
Øh - det er ikke korrekt svar.

For demo og forslag til workaround prøv:

Function zz()
  Call test1("07-02-1985")
  Call test1("09-02-1985")
  Call test2("07-02-1985")
  Call test2("09-02-1985")
End Function

Function test1(d As String)
  If DateDiff("yyyy", d, Now()) < 18 Then
      MsgBox "du er under 18"
  Else
      MsgBox "du er over 18"
  End If
End Function

Function test2(d As String)
  If DateDiff("yyyy", d, Now()) < 18 Then
      MsgBox "du er under 18"
  Else
      If DateDiff("yyyy", d, Now()) > 18 Then
        MsgBox "du er over 18"
      Else
        If DatePart("y", d) < DatePart("y", Now()) Then
            MsgBox "du er under 18"
        Else
            MsgBox "du er over 18"
        End If
      End If
  End If
End Function
Avatar billede somaliomar Praktikant
08. februar 2003 - 21:33 #5
arne_v >> Hvad er det der ikke er korrekt?
Avatar billede arne_v Ekspert
08. februar 2003 - 21:36 #6
Prøv og kør mit eksempel !

Hvis man kun tester på år, så vil en der er født 9-FEB-1985
blive opfattet som værende over 18 år. Og det er ikke rigtigt.
Han fylder først 18 år imorgen.
Avatar billede arne_v Ekspert
08. februar 2003 - 21:37 #7
PS: mit eksempel er i ren VB ikke ASP, men det ændrer ikke på
    substansen.
Avatar billede somaliomar Praktikant
08. februar 2003 - 21:39 #8
Hmm... Du har ret. Det tænktet jeg ikke på :)
Avatar billede somaliomar Praktikant
08. februar 2003 - 21:39 #9
arne_v >> Hvad kan man gøre ved det?
Avatar billede arne_v Ekspert
08. februar 2003 - 21:41 #10
Gøre som i min test2 kode.

Hvis forskellen i år (yyyy) er lige præcis 18, så skal man sammengligne
dag-i-år (y) inden man kender svaret.
Avatar billede somaliomar Praktikant
08. februar 2003 - 21:44 #11
arne_v >> OK. Nu ved jeg til næste gang :)

jacand >> Hvad siger du?
Avatar billede jacand Nybegynder
08. februar 2003 - 22:29 #12
somaliomar>> Din kode løste mit problem, jeg skal bruge koden til at tjekke om et bruger er myndig, og derfor betyder en dag i dette tilfælde ikke så meget, men arne_v har ret i at hvis man skal bruge en kode der er hel præcis kan din kode ikke bruges :-)
meeen endnu en gang tak
Avatar billede somaliomar Praktikant
08. februar 2003 - 22:55 #13
Ok :)
Avatar billede jacand Nybegynder
08. februar 2003 - 23:03 #14
hmmm ok der var jeg sku' lidt for hurtig
datee = "12-02-1985"
if datediff("yyyy",datee, now) < 18 then
response.write "du er under 18"
else
response.write "du er over 18"
end if
giver:
du er over 18
og det er jo ikke rigtigt :-)
Så jeg har prøvet lidt med arne_v's forslag meeeen det kan jeg heller ikke få til at spille :-)
<%
<%
d = "06-02-1985"
  If DateDiff("yyyy", d, Now()) < 18 Then
      response.write "du er under 18"
  Else
      If DateDiff("yyyy", d, Now()) > 18 Then
        response.write "du er over 18"
      Else
        If DatePart("y", d) < DatePart("y", Now()) Then
            response.write "du er under 18"
        Else
            response.write "du er over 18"
        End If
      End If
  End If
%>
giver:
du er under 18
mens d = "11-02-1985" giver:
du er over 18
Avatar billede arne_v Ekspert
08. februar 2003 - 23:07 #15
Hovsa.

Vend lige det tegn:

If DateDiff("yyyy", d, Now()) < 18 Then
      response.write "du er under 18"
  Else
      If DateDiff("yyyy", d, Now()) > 18 Then
        response.write "du er over 18"
      Else
        If DatePart("y", d) > DatePart("y", Now()) Then
            response.write "du er under 18"
        Else
            response.write "du er over 18"
        End If
      End If
  End If
Avatar billede somaliomar Praktikant
08. februar 2003 - 23:08 #16
jacand >> Har du fundet en fejl i vores kode? hehehe
Avatar billede arne_v Ekspert
08. februar 2003 - 23:08 #17
Det er når man fylder år senere i år end nu at man er under 18.

Ikke omvendt.
Avatar billede jacand Nybegynder
08. februar 2003 - 23:15 #18
somaliomar>> ja det kan man godt sige :-)
arne_v >>  svar på http://www.eksperten.dk/spm/315109 så er der point til dig, du havde jo ret i sidste ende :-)
Avatar billede arne_v Ekspert
08. februar 2003 - 23:17 #19
Tak.
Avatar billede somaliomar Praktikant
08. februar 2003 - 23:20 #20
jacand >> Burde det ikke være mig, der skulle returnere de point jeg har fået? Jeg har ingen problemer med det :)
Avatar billede jacand Nybegynder
08. februar 2003 - 23:24 #21
somaliomar>> nej du må gerne beholde dem, hvis du vil, jeg kan jo have et svar tilgode :-)
Avatar billede somaliomar Praktikant
08. februar 2003 - 23:26 #22
jacand >> Det kunne du godt, mem skal vi ikke gøre sådan at du giver arne_v de 60 point og du får dine 60 tilbage?
Avatar billede jacand Nybegynder
08. februar 2003 - 23:30 #23
somaliomar>> jo det kan vi godt gøre, så følger vi jo også reglerne :-)
Avatar billede somaliomar Praktikant
08. februar 2003 - 23:33 #24
jacand >> Ok. Jeg har oprettet http://www.eksperten.dk/spm/315114

PS. Hvilken af reglerne?
Avatar billede jacand Nybegynder
08. februar 2003 - 23:37 #25
somaliomar>> Det ved jeg faktisk ikke da jeg ikke kan finde dem <:o)
Avatar billede somaliomar Praktikant
08. februar 2003 - 23:38 #26
Det er OK ;)
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