Edad = Fecha actual – Fecha de nacimiento

Daniela De Leonardis López

#include <iostream>
#include <stdlib.h>
using namespace std;

int bisiesto(int);
int fecha_valida(int , int, int);
int calcular_edad(int, int, int, int, int, int);

int main()
{
int diaa, mesa, anioa, dian, mesn, anion, edad;

do
{
cout << “Introduce fecha actual: ” << endl;
cout << “Dia : “; cin >> diaa;
cout << “Mes : “; cin >> mesa;
cout << “A” << (char)164 << “o: “; cin >> anioa;
}while(!(fecha_valida(diaa, mesa, anioa)));

do
{
cout << endl << “Introduce fecha de nacimiento: ” << endl;
cout << “Dia : “; cin >> dian;
cout << “Mes : “; cin >> mesn;
cout << “A” << (char)164 << “o: “; ; cin >> anion;
}while(!(fecha_valida(dian, mesn, anion)));

edad = calcular_edad(diaa, mesa, anioa, dian, mesn, anion);
cout << endl << “Edad : ” << edad << endl << endl;

system(“pause”);
}

int calcular_edad(int da, int ma, int aa, int dn, int mn, int an)
{
int edad = aa – an;
if(ma < mn) edad–;
else if(ma == mn && da < dn) edad–;
return edad;
}

int bisiesto(int a)
{
if((a%4==0 && a%100 !=0) || a%400==0) return 1;
else return 0;
}

int fecha_valida(int d, int m, int a)
{
if(d < 1 || d > 31 || m < 1 || m > 12 || a < 1600) return 0;

switch(m)
{
case 4:
case 6:
case 9:
case 11:
if(d > 30) return 0;
break;

case 2:
if(bisiesto(a)) {if(d > 29) return 0};
else if(d > 28) return 0;
break;
}

return 1;
}

Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s