/ 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
Alder
Fra : Henrik


Dato : 27-11-08 09:21

Hej,

Kan man beregne alder?

Har Fdato stående i db som 28-11-1970

Kan man få et udtræk på alder og måske også dage?

Feks.

37 år og 364 dage, eller bare
37 år

Mvh.
Henrik

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

 
 
Steen Ulrick Madsen (27-11-2008)
Kommentar
Fra : Steen Ulrick Madsen


Dato : 27-11-08 11:28


"Henrik" <mahlhn@ft.dk> skrev i meddelelsen
news:492e5875$0$90274$14726298@news.sunsite.dk...
> Hej,
>
> Kan man beregne alder?
>
> Har Fdato stående i db som 28-11-1970
>
> Kan man få et udtræk på alder og måske også dage?
>
> Feks.
>
> 37 år og 364 dage, eller bare
> 37 år
>
> Mvh.
> Henrik
>

<%
Dim date1 , date2 , strDateDiff
date1 = Now()
date2 = "18/10/1974"
strDateDiff = DateDiff("yyyy" , date2 , date1 )
If strDateDiff < 16 Then
Response.Write "Sorry you are under age"
Else
Response.Write "You may enter"
End If
%>


Henrik (27-11-2008)
Kommentar
Fra : Henrik


Dato : 27-11-08 11:48

Steen Ulrick Madsen wrote in
dk.edb.internet.webdesign.serverside.asp:
> "Henrik" <mahlhn@ft.dk> skrev i meddelelsen
> news:492e5875$0$90274$14726298@news.sunsite.dk...
> > Hej,
> >
> > Kan man beregne alder?
> >
> > Har Fdato stående i db som 28-11-1970
> >
> > Kan man få et udtræk på alder og måske også dage?
> >
> > Feks.
> >
> > 37 år og 364 dage, eller bare
> > 37 år
> >
> > Mvh.
> > Henrik
> >
>
> <%
&gt; Dim date1 , date2 , strDateDiff
&gt; date1 = Now()
&gt; date2 = "18/10/1974"
&gt; strDateDiff = DateDiff("yyyy" , date2 , date1 )
&gt; If strDateDiff < 16 Then
&gt; Response.Write "Sorry you are under age"
&gt; Else
&gt; Response.Write "You may enter"
&gt; End If
&gt; %>
>

Var ikke lige det jeg søgte.
Har en kolonne i db med fødselsdatoer f.eks. 28-11-1970,
Det udtræk vil jeg gerne have ud i en table, men som alder.

Response.Write "<td>" & "Alder:" & "</td>" & vbcrlf
Response.Write "<td>"KODE??"</td>" & vbcrlf

Mvh.
Henrik


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

Jørn Andersen (27-11-2008)
Kommentar
Fra : Jørn Andersen


Dato : 27-11-08 13:38

On 27 Nov 2008 08:21:10 GMT, Henrik <mahlhn@ft.dk> wrote:

>Kan man beregne alder?
>
>Har Fdato stående i db som 28-11-1970
>
>Kan man få et udtræk på alder og måske også dage?
>
>Feks.
>
>37 år og 364 dage, eller bare
>37 år

Ja, i princippet er det jo bare en DateDiff, men der skal tages højde
for, om personen har haft fødselsdag i år.
Det nemmeste er at lave det i en funktion, som så kan genbruges.
Funktionen placeres uden for din evt. recordset-loop.


<%
datFDato = objRs("Fdato")
Response.Write "<td>Alder:</td>" & vbcrlf
Response.Write "<td>" & fktAlder(datFDato) & "</td>" & vbcrlf

' Funktion til aldersberegning
Function fktAlder(varFDag)
   '----------------------------
   ' Modtager en fødselsdato og afleverer en alder
   ' Ud fra eksempler i dk.edb.database.ms-access
   ' Tak til Tom Jensen, Jan Kronsell m.fl.
   ' omskrevet 27-11-2008
   '----------------------------

   ' fra fødselsdato
   Dim intFoedDag
   Dim intFoedMaaned
   ' fra referencedato (i dag)
   Dim intRefDag
   Dim intRefMaaned

   Dim intFradrag

   ' Pil dag, måned og år ud af fødselsdato
   intFoedDag = Day(varFdag)
   intFoedMaaned = Month(varFdag)

   ' Pil dag og måned ud af reference datoen
   intRefDag = Day(Now)
   intRefMaaned = Month(Now)

   intFradrag = 1
   ' Hvis referencedag/måned er senere eller lig
' med fødselsdag/måned er personen fyldt år

   If (intRefMaaned > intFoedMaaned) Or _
      (intRefMaaned = intFoedMaaned And _
      intRefDag >= intFoedDag) Then
      intFradrag = 0
   End If

   ' Hvis personen har haft fødselsdag trækkes de to
   ' årstal fra hinanden. Hvis ikke trækkes yderligere 1 fra.
   fktAlder = DateDiff("yyyy", varFdag, Date) - intFradrag
End Function

%>


Good luck!

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

Henrik (27-11-2008)
Kommentar
Fra : Henrik


Dato : 27-11-08 14:04


> Ja, i princippet er det jo bare en DateDiff, men der skal tages højde
> for, om personen har haft fødselsdag i år.
> Det nemmeste er at lave det i en funktion, som så kan genbruges.
> Funktionen placeres uden for din evt. recordset-loop.
>
>
> <%
&gt; datFDato = objRs("Fdato")
&gt; Response.Write "<td>Alder:</td>" & vbcrlf
&gt; Response.Write "<td>" & fktAlder(datFDato) & "</td>" & vbcrlf
&gt;
&gt; ' Funktion til aldersberegning
&gt; Function fktAlder(varFDag)
&gt;    '----------------------------
&gt;    ' Modtager en fødselsdato og afleverer en alder
&gt;    ' Ud fra eksempler i dk.edb.database.ms-access
&gt;    ' Tak til Tom Jensen, Jan Kronsell m.fl.
&gt;    ' omskrevet 27-11-2008
&gt;    '----------------------------
&gt;
&gt;    ' fra fødselsdato
&gt;    Dim intFoedDag
&gt;    Dim intFoedMaaned
&gt;    ' fra referencedato (i dag)
&gt;    Dim intRefDag
&gt;    Dim intRefMaaned
&gt;
&gt;    Dim intFradrag
&gt;
&gt;    ' Pil dag, måned og år ud af fødselsdato
&gt;    intFoedDag = Day(varFdag)
&gt;    intFoedMaaned = Month(varFdag)
&gt;
&gt;    ' Pil dag og måned ud af reference datoen
&gt;    intRefDag = Day(Now)
&gt;    intRefMaaned = Month(Now)
&gt;
&gt;    intFradrag = 1
&gt;    ' Hvis referencedag/måned er senere eller lig
&gt; ' med fødselsdag/måned er personen fyldt år
&gt;
&gt;    If (intRefMaaned > intFoedMaaned) Or _
&gt;       (intRefMaaned = intFoedMaaned And _
&gt;       intRefDag >= intFoedDag) Then
&gt;       intFradrag = 0
&gt;    End If
&gt;
&gt;    ' Hvis personen har haft fødselsdag trækkes de to
&gt;    ' årstal fra hinanden. Hvis ikke trækkes yderligere 1 fra.
&gt;    fktAlder = DateDiff("yyyy", varFdag, Date) - intFradrag
&gt; End Function
&gt;
&gt; %>
>
Hvordan får jeg det "mikset" sammen med det her:

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("/db/medlemmer.mdb")
Conn.Open DSN

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From medlemmer Where Id = " &
Request.Querystring("id")
Set rs = Conn.Execute(strSQL)

Response.Write "<table>" & vbcrlf

' Gennemløb Recordset (rs) med en løkke
Do While Not rs.EOF
Response.Write "<tr>" & vbcrlf
Response.Write "<td colspan=""5"" class=""navn"">" & rs("Fornavn") & " "
& rs("Efternavn") & " </td>" & vbcrlf
Response.Write "</tr>" & vbcrlf

Response.Write "<tr>" & vbcrlf
Response.Write "<td class=""td"" rowspan=""8""><img width=""150""
src=""../images/medlemmer/" & rs("billede") & """ height=""190""
/></td>" & vbcrlf
Response.Write "<td class=""td"">" & "Fornavn:" & "</td>" & vbcrlf
Response.Write "<td class=""td1"">" & rs("Fornavn") & "</td>" & vbcrlf
Response.Write "<td class=""td"">" & "Telefonnummer:" & "</td>" & vbcrlf
Response.Write "<td class=""td"">" & rs("Telefonnummer") & "</td>" &
vbcrlf
Response.Write "</tr>" & vbcrlf
Response.Write "<tr>" & vbcrlf
Response.Write "<td class=""td"">" & "Efternavn:" & "</td>" & vbcrlf
Response.Write "<td class=""td1"">" & rs("Efternavn") & "</td>" & vbcrlf
Response.Write "<td class=""td"">" & "Ansat:" & "</td>" & vbcrlf
Response.Write "<td class=""td"">"
If rs("Ansat") = "" Or IsNull(rs("Ansat")) Then
Response.Write("?")
Else
Response.Write FormatDateTime(rs("Ansat"), vbLongDate)
End If
Response.Write "</td>" & vbcrlf
Response.Write "</tr>" & vbcrlf
Response.Write "<tr>" & vbcrlf
Response.Write "<td class=""td"">" & "Stilling:" & "</td>" & vbcrlf
Response.Write "<td class=""td1"">" & rs("Stilling") & "</td>" & vbcrlf
Response.Write "<td class=""td"">" & "Anciennitet:" & "</td>" & vbcrlf
Response.Write "<td class=""td"">" & rs("Anciennitet") & "</td>" &
vbcrlf
Response.Write "</tr>" & vbcrlf
Response.Write "<tr>" & vbcrlf
Response.Write "<td class=""td"">" & "Enhed:" & "</td>" & vbcrlf
Response.Write "<td class=""td1"">" & rs("Enhed") & "</td>" & vbcrlf
Response.Write "<td class=""td"">" & "Født:" & "</td>" & vbcrlf
Response.Write "<td class=""td"">"
If rs("Fdato") = "" Or IsNull(rs("Fdato")) Then
Response.Write("?")
Else
Response.Write FormatDateTime(rs("Fdato"), vbLongDate)
End If
Response.Write "</td>" & vbcrlf
Response.Write "</tr>" & vbcrlf
Response.Write "<tr>" & vbcrlf
Response.Write "<td class=""td"">" & "Afdeling:" & "</td>" & vbcrlf
Response.Write "<td class=""td1"">" & rs("Afdeling") & "</td>" & vbcrlf
Response.Write "<td class=""td"">" & "Alder:" & "</td>" & vbcrlf
Response.Write "<td class=""td""></td>" & vbcrlf
Response.Write "</tr>" & vbcrlf
Response.Write "<tr>" & vbcrlf
Response.Write "<td class=""td"">" & "Lokalnummer:" & "</td>" & vbcrlf
Response.Write "<td class=""td1"">" & rs("Lokalnummer") & "</td>" &
vbcrlf
Response.Write "<td class=""td""></td>" & vbcrlf
Response.Write "<td class=""td""></td>" & vbcrlf
Response.Write "</tr>" & vbcrlf
Response.Write "<tr>" & vbcrlf
Response.Write "<td class=""td"">" & "Sms:" & "</td>" & vbcrlf
Response.Write "<td class=""td1"">" & rs("Sms") & "</td>" & vbcrlf
Response.Write "<td class=""td""></td>" & vbcrlf
Response.Write "<td class=""td""></td>" & vbcrlf
Response.Write "</tr>" & vbcrlf
Response.Write "<tr>" & vbcrlf
Response.Write "<td class=""td"">" & "E-mail:" & "</td>" & vbcrlf
Response.Write "<td class=""td1""><a href=""mailto:" & RS("E-mail") &
""">" & RS("E-mail") & "</a></td>" & vbcrlf
Response.Write "<td class=""td""></td>" & vbcrlf
Response.Write "<td class=""td""></td>" & vbcrlf
Response.Write "</tr>" & vbcrlf
' Gå til næste Record i rs
rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop

Response.Write "</table>" & vbcrlf

rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
%>

Har prøvet på flere måder men får besked om at typerne ikke passer
sammen 'objRs'

Mvh.
Henrik

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

Jørn Andersen (27-11-2008)
Kommentar
Fra : Jørn Andersen


Dato : 27-11-08 15:37

On 27 Nov 2008 13:04:12 GMT, Henrik <mahlhn@ft.dk> wrote:

>rs.Close
>Set rs = Nothing
>Conn.Close
>Set Conn = Nothing
>%>
>
>Har prøvet på flere måder men får besked om at typerne ikke passer
>sammen 'objRs'

Næh, når dit RecordSet-objekt kun hedder rs (og ikke objRs), så skal den
selvfølgelig også hedde rs i dette tilfælde.

Og: *Funktionen* skal være uden for loop'en, men:

datFDato = rs("Fdato")
Response.Write "<td>Alder:</td>" & vbcrlf
Response.Write "<td>" & fktAlder(datFDato) & "</td>" & vbcrlf

skal være en del af loop'en.

Good luck!

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

Henrik (27-11-2008)
Kommentar
Fra : Henrik


Dato : 27-11-08 16:10

Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
> On 27 Nov 2008 13:04:12 GMT, Henrik <mahlhn@ft.dk> wrote:
>
> >rs.Close
> >Set rs = Nothing
> >Conn.Close
> >Set Conn = Nothing
> >%>
> >
> >Har prøvet på flere måder men får besked om at typerne ikke passer
> >sammen 'objRs'
>
> Næh, når dit RecordSet-objekt kun hedder rs (og ikke objRs), så skal den
> selvfølgelig også hedde rs i dette tilfælde.
>
> Og: *Funktionen* skal være uden for loop'en, men:
>
> datFDato = rs("Fdato")
> Response.Write "<td>Alder:</td>" & vbcrlf
> Response.Write "<td>" & fktAlder(datFDato) & "</td>" & vbcrlf
>
> skal være en del af loop'en.
>
Super tak Jørn, jeg skulle lige forstå uden for loop.
Kan jeg genbruge denne funktion til at udregne hvor mange år folk har været
ansat eller skal jeg skrive en ny funktion.

Mvh.
Henrik

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

Christian Kragh (28-11-2008)
Kommentar
Fra : Christian Kragh


Dato : 28-11-08 00:42

> Kan jeg genbruge denne funktion til at udregne hvor mange år folk har
> været
> ansat eller skal jeg skrive en ny funktion.

Du kan genbruge funktionen, det er det som er smart ved dem.

Du skal bare bruge samme input metode for de virker på samme måde.
Jeg har lavet et par funktioner der validere tekst, tal og symboler.
Den spørger om inputtet når den modtager dataen

<%
function valider(text)
if isdate(text) then
..
elseif ischar(text) then
..
%>

Christian


Henrik Nielsen (27-11-2008)
Kommentar
Fra : Henrik Nielsen


Dato : 27-11-08 20:58



>
> datFDato = rs("Fdato")
> Response.Write "<td>Alder:</td>" & vbcrlf
> Response.Write "<td>" & fktAlder(datFDato) & "</td>" & vbcrlf
>

har lavet det om til følgende:

Response.Write "<td class=""td1"">" & fktAlder(datFDato) & " år" & "</td>" &
vbcrlf

så der skrives år efter den alder der udtrækkes, men det skal den kun skrive
hvis der findes en fødselsdato, kan man skjule & " år" hvis der ikke er en
dato i db?

Mvh.
Henrik



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

Månedens bedste
Årets bedste
Sidste års bedste