28 messaggi dal 23 novembre 2001
Scusate vorrei un' informazione su come potrei ottenere l'età di un'utente, sapendo la sua data di nascita. Ho cercato tra gli articoli di questo sito, ma ho trovato soltanto come ottenere i giorni tra una data e l'altra cioè con DateDiff("d", data1, data2). Ho provato a impostare "yyyy" al posto di "d" ma in questo modo ottengo solo la differenza tra i due anni.

28 messaggi dal 23 novembre 2001
Ho trovato un modo che potrebbe funzionare.

il campo rs("M_AGE") è costituido da date in formato DD/MM/YYYY e il codice è il seguente:

diff=DateSerial(Year(Now)-Mid(rs("M_AGE"), 7, 4) , Month(Now)-Mid(rs("M_AGE"), 4, 2)+1 , Day(Now)-Mid(rs("M_AGE"), 1, 2)+1)

age = DatePart("yyyy" , diff)

Response.Write Mid(age, 3, 2)

ma la cosa non mi sembra molto pulita, infatti la variabile age mi restituisce un valora di 4 cifre: 20?? dove al posto dei ?? dovrebbe esserci l'età e quindi io ho usato Mid(age, 3, 2).

Chiedo consigli su come migliorare questo script.

60 messaggi dal 13 febbraio 2002
se ti interessano solo gli anni della persona potresti prendere la data del DB,
e fare, year(rs.data), questo dovrebbe restituirti l'anno contenuto nella data, fai la stessa cosa con la data odierna year(date()) e poi sottrai all'anno in corso l'anno contenuto nel database:



nascita=year(rs.data)
oggi=year(date())

anni=cint(oggi) - cint(nascita)



dovrebbe funzionare fammi sapere!!!!!!
ciao vaargard


28 messaggi dal 23 novembre 2001
No così non funziona perchè in questo modo l'età degli utenti si aggiornano tutte ogni primo Gennaio

134 messaggi dal 20 marzo 2001
Bravo Skull
Così fa quello che deve fare e non come hanno sempre risposto.

Sto cercando anche io di ottimizzare il tuo codice perchè manco a me sembra la sintassi corretta.
In ogni caso il calcolo è giusto.
134 messaggi dal 20 marzo 2001
Ho capito perchè ti caccia 20?? dove ?? è il tuo valore!

PRaticamente il tutto risulta così: 00?? quindi per il sistema i "00" sono anno 2000!

Ho dato una ritoccata al codice:


'ovviamente rs_dettaglio("age") è l'età dell'utente presa dal db

diff=DateSerial(Year(date)-year(rs_dettaglio("age")) , Month(date)-month(rs_dettaglio("age"))+1 , Day(date)-day(rs_dettaglio("age"))+1)

age = DatePart("yyyy" , diff)

age=age-2000

Response.Write age
134 messaggi dal 20 marzo 2001
scusate...ho sbagliato tutto.

Chiedo venia.

Devo ragionarci meglio
134 messaggi dal 20 marzo 2001
risolto, provatelo un po


diff=DateSerial(Year(now)-year(rs_dettaglio("age")) , Month(now)-month(rs_dettaglio("age"))+1 , Day(now)-day(rs_dettaglio("age"))+1)

age = DatePart("yyyy" , diff)

if age>1000 then
Response.Write Mid(age, 3, 2)
else
Response.Write age
end if

Grazie Skull!!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.