[Python-es] Duda calculando edad
Oscar Carballal Prego
oscar.carballal en gmail.com
Vie Feb 26 10:17:33 CET 2010
Gracias Eduardo y Jesús,
El detalle de Jesús es cierto, aunque en el caso de esta aplicación
no es necesario implementarlo, de todas formas podría hacerse algo
así no?
def age(self):
yeardays = 365
act_year = datetime.date.today().year
diff = (datetime.date.today() - self.birth_date).days
if act_year / 4 == 0 and act_year != 100 or act_year / 400 == 0:
yeardays += 1
else:
yeardays = 365
years = str(int(diff/yeardays))
return unicode(years + ' años')
El 26/02/2010, a las 6:20, Jesus Cea escribió:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 02/26/2010 01:41 AM, Eduardo Matus wrote:
>> cuidado con los caracteres especiales
>> def age(self):
>> diff = (datetime.date.today() - self.birth_date).days
>> years = str(int(diff/365))
>> return unicode(years + ' años')
>
> ¿Y los años bisiestos?.
>
> Lo más obvio sería restar los años, y luego sumarle uno si el día y
> mes
> actual es igual o superior al día y mes de nacimiento. Así es como lo
> hacemos los humanos.
>
Más información sobre la lista de distribución Python-es