Vous êtes sur la page 1sur 4

/*El departamento escolar del jardn de nios San Vicente, desea estar actualizando

la edad
de sus alumnos por perodo escolar, para llevar un registro de sus alumnos y
presentarlo a
la Secretara de Educacin para fines estadsticos de la edad escolar. Desarrollar
un programa
en C++ que escriba una funcin que reciba como parmetro la fecha de nacimiento de
un alumno y
la fecha actual y que calcule la edad del alumno,
si tiene menos de un ao que d la edad en meses, Por ejemplo:

Si la fecha de nacimiento es 12 de Oct de 2000 y la fecha actual es 1 de Oct de


2003 el programa debe decir que
la persona tiene 2 aos cumplidos.
Si la fecha de nacimiento es 15 de Marzo de 1980 y la fecha actual es 29 de Marzo
de 2003, el programa debe decir que
la persona tiene 13 aos.
Si la fecha de nacimiento es el 12 de Noviembre de 2002 y la fecha actual es el 15
de Agosto de 2003 el programa debe
decir que la persona tiene 9 meses de edad.

*/

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

float edadactual(char[], char[]);


int main()
{
int res=1;
char f1[30];
char f2[30];
float tt;
system ("cls");

cout<<"Ingrese la fecha de nacimiento del usuario en este formato, 01 de febrero de


1982 :"<<endl;
cin.getline(f1,50);
cout<<"Ingrese la fecha actual del usuario en este formato (dia)19 de (mes)agosto
de (anio)2017: "<<endl;
cin.getline(f2,50);
tt=edadactual(f1,f2);
cout<<"El usuario tiene :";
if(tt<1){
cout<<tt*12<<" meses."<<endl<<endl;
}else{
cout<<(int)tt<<" anios de edad."<<endl<<endl;

return 0;
}
float edadactual(char fecha1[], char fecha2[])
{
float a1,a2;
char m1[15],m2[15];
float mes1,mes2;
int dia1,dia2;
sscanf(fecha1,"%d de %s de %f", &dia1,&m1,&a1);
sscanf(fecha2,"%d de %s de %f", &dia2,&m2,&a2);

if(strcmp(m1,"enero")==0 || strcmp(m1,"Enero")==0)
{
mes1=1;
}
if(strcmp(m2,"enero")==0 || strcmp(m2,"Enero")==0)
{
mes2=1;
}
if(strcmp(m1,"febrero")==0 || strcmp(m1,"Febrero")==0)
{
mes1=2;
}
if(strcmp(m2,"febrero")==0 || strcmp(m2,"Febrero")==0)
{
mes2=2;
}
if(strcmp(m1,"marzo")==0 || strcmp(m1,"Marzo")==0)
{
mes1=3;
}
if(strcmp(m2,"marzo")==0 || strcmp(m2,"Marzo")==0)
{
mes2=3;
}
if(strcmp(m1,"abril")==0 || strcmp(m1,"Abril")==0)
{
mes1=4;
}
if(strcmp(m2,"abril")==0 || strcmp(m2,"Abril")==0)
{
mes2=4;
}
if(strcmp(m1,"mayo")==0 || strcmp(m1,"Mayo")==0)
{
mes1=5;
}
if(strcmp(m2,"mayo")==0 || strcmp(m2,"Mayo")==0)
{
mes2=5;
}
if(strcmp(m1,"junio")==0 || strcmp(m1,"Junio")==0)
{
mes1=6;
}
if(strcmp(m2,"junio")==0 || strcmp(m2,"Junio")==0)
{
mes2=6;
}
if(strcmp(m1,"julio")==0 || strcmp(m1,"Julio")==0){
mes1=7;
}
if(strcmp(m2,"julio")==0 || strcmp(m2,"Julio")==0){
mes2=7;
}
if(strcmp(m1,"agosto")==0 || strcmp(m1,"Agosto")==0){
mes1=8;
}
if(strcmp(m2,"agosto")==0 || strcmp(m2,"Agosto")==0){
mes2=8;
}
if(strcmp(m1,"setiembre")==0 || strcmp(m1,"Setiembre")==0){
mes1=9;
}
if(strcmp(m2,"setiembre")==0 || strcmp(m2,"Setiembre")==0){
mes2=9;
}
if(strcmp(m1,"octubre")==0 || strcmp(m1,"Octubre")==0){
mes1=10;
}
if(strcmp(m2,"octubre")==0 || strcmp(m2,"Octubre")==0){
mes2=10;
}
if(strcmp(m1,"noviembre")==0 || strcmp(m1,"Noviembre")==0){
mes1=11;
}
if(strcmp(m2,"noviembre")==0 || strcmp(m2,"Noviembre")==0){
mes2=11;
}
if(strcmp(m1,"diciembre")==0 || strcmp(m1,"Diciembre")==0){
mes1=12;
}
if(strcmp(m2,"diciembre")==0 || strcmp(m2,"Diciembre")==0){
mes2=12;
}

if(a2-a1==0){

if(mes2-mes1==0){
cout<<endl<<"1"<<endl;
return 0.0;
}
else{
return (mes2-mes1)/12.0;
}
}else{
if(a2-a1>=1){
if(mes2-mes1<0){
if(dia1<=dia2){ cout<<endl<<"3"<<endl;
return ((12.0 - (mes1-mes2))/12.0) + (a2-a1-1);
}else{
if(dia1>dia2){
return (11.0 - (mes1-mes2))/12.0 + (a2-a1-1);
}
}
}else
{
if(mes2==mes1){
if(dia1<=dia2){
return a2-a1;
}
else
{
if(dia1>dia2)
{
return 11.0/12.0 + (a2-a1-1);
}
}
}
else
{
return a2-a1;
}
}
}
}
}

Vous aimerez peut-être aussi