[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