algunma mejor idea para la edad?

Iniciado por neo_from_cs_matrix, 9 Febrero 2012, 20:27 PM

0 Miembros y 1 Visitante están viendo este tema.

neo_from_cs_matrix

este codigo da la edad aproximada, quisiera si me pueden ayudar a hacer qeu este codigo sea perfecto

agradezco su interes


bool esbisiesto(int a)
{
bool bisiesto=false;
    if(a%4==0)
       bisiesto=true;
    if((a%100==0) && (a%400!=0))
        bisiesto=false;
return bisiesto;
}

unsigned int CalcularEdad(Fecha birthdate)
{
int AnioActual, AA, MesActual, MM, DiaActual, DD;
int año, Mes, Dia;

int MonthDays[2][12]  = {
//{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
            //{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{31, 28, 30, 31, 30, 31, 31, 31, 30, 31, 30, 31},
            {31, 29, 30, 31, 30, 31, 31, 31, 30, 31, 30, 31},
};
SYSTEMTIME time;
GetLocalTime(&time);
AA=birthdate.getAnyo();
MM=birthdate.getMes();
DD=birthdate.getDya();
AnioActual=time.wYear;
MesActual=time.wMonth;
DiaActual=time.wDay;
año = AA-AnioActual;
if( MesActual <= MM )
{
Mes = MM - MesActual;
}
else
{
Mes = MM+12-MesActual;
año = año -1;
}
if( DiaActual <= DD )
{
Dia = DD - DiaActual;
}
else
{
Dia=DD+MonthDays[esbisiesto(AA)][MM-1]-DiaActual;
Mes = Mes -1;
}
if( Mes < 0 )
{
año = año - 1;
Mes = 12 + Mes;
}
unsigned int Arreglo=año*-1;
//Result = Format('Años: %.0f, Meses: %.0f, Dias: %.0f', [año, Mes, Dia]);
return Arreglo;
}


el codigo fue sacado de u n codigo de visual basic en google y lo modifique pero necesito hacerlo andar bien :|