Già il titolo dice tutto. Quale è loscript per calcolare gli anni in base a una data di nascita?
Spero qualcuno mi aiuti.
Ciao Davide
Già il titolo dice tutto. Quale è loscript per calcolare gli anni in base a una data di nascita?
Spero qualcuno mi aiuti.
Ciao Davide
In Asp
DataNascita = "25/12/1986"
(per inserire il dato devi usare un form o lo recuperi da un db)
AnnoAttuale = DatePart("yyyy", Date())
AnnoNascita = DatePart("yyyy", Date(DataNascita))
TuoiAnni = (AnnoAttuale - AnnoNascita)
Ciao a tutti,
io ti faccio un esempio in javascript (con il controllo che la data inserita sia una data valida e nel formato gg/mm/aaaa)
in ASP senza ricavare l'anno dalle date e poi fare la differenza si può usare direttamentecodice:<script language="javascript"> function anni(ff){ strData = ff.datanascita.value RE = /^\d{1,2}\/\d{1,2}\/\d{4}$/ if(RE.test(strData)){ aData = strData.split('/') aData[0] = parseInt(aData[0],10) aData[1] = parseInt(aData[1],10)-1 aData[2] = parseInt(aData[2],10) data = new Date(aData[2],aData[1],aData[0]) if(data.getDate()==aData[0] && data.getMonth()==aData[1] && data.getFullYear()==aData[2]){ oggi = new Date() dif = oggi.getTime()-data.getTime() divisore = (1000*60*60*24*365) anni = Math.round(dif/divisore) alert('anni in javascript = '+anni) return true } else{ alert('Data non valida') return false } } else{ alert('Formato data non valido') return false } } </script> <form> <input type="text" name="datanascita"> <input type="button" value="anni" onclick="anni(this.form)"> </form>
DateDiff("yyyy",data1,data2)
![]()
a me dice 1 anno in più...![]()
![]()
questione di arrotondamenti... :gren:Originariamente inviato da web ces
a me dice 1 anno in più...![]()
![]()
cioè?
pippo è nato il 10/6/1985 e oggi è il 9/6/2003
pippo ha 18 anni per lo script che ho fatto... in realtà i 18 anni li farà domani... visto che non tutti gli anni sono di 365 giorni si potrebbe fare così
codice:function anni(ff){ strData = ff.datanascita.value RE = /^\d{1,2}\/\d{1,2}\/\d{4}$/ if(RE.test(strData)){ aData = strData.split('/') aData[0] = parseInt(aData[0],10) aData[1] = parseInt(aData[1],10)-1 aData[2] = parseInt(aData[2],10) data = new Date(aData[2],aData[1],aData[0]) if(data.getDate()==aData[0] && data.getMonth()==aData[1] && data.getFullYear()==aData[2]){ oggi = new Date() oggi = new Date(oggi.getFullYear(),oggi.getMonth(),oggi.getDate()) compleanno = new Date(oggi.getFullYear(),aData[1],aData[0]) dif = oggi.getTime()-compleanno.getTime() divisore = (1000*60*60*24) giorni = parseInt(dif/divisore) anni = oggi.getFullYear()-data.getFullYear() anni=(giorni<0)?anni-1:anni alert(compleanno+'\n'+oggi+'\nanni in javascript = '+anni) return true } else{ alert('Data non valida') return false } } else{ alert('Formato data non valido') return false } }![]()
Innanzi tutto grazie dell'aiuto a tutti.
Zocchi io nel tuo codice vorrei chiarimenti.
Io ho il campo giorni, mese e anno separati e quindi tre campi nel database. Come recuperarli nel tuo cosice? e poi cosa va messo al posto delle yyyy?
Spero mi rispondi presto.
Ciao Davide
non sono zocchi però...
se devi farlo in ASP
"yyyy" è proprio "yyyy"codice:data = DateSerial(rs("anno"),rs("mese"),rs("giorno")) Response.Write "anni in ASP = " & DateDiff("yyyy",data,now)
![]()
p.s.
per domande riguardanti ASP esiste il forum ASP![]()