precisa que seja em c , só com IF, ELSE, ELSE IF.
precisa receber dia,mes,ano atual separados
precisa receber dia,mes,ano nascimento separados
idade não pode ser maior 150 anos
descobrir ano atual e o de nascimento são bissexto
#include <stdio.h>
#include <locale.h>
#include <math.h>
validaatual(int aatual) //Função para validação de ano
{
{
printf("\nO valor digitado esta incorreto, valores permitidos {1867-2018}.");
printf("\nDigite novamente o ano atual : ");
scanf("%d",&aatual);
getchar();
}
if(aatual > 1867 || aatual == 2018)
{
validaatual(&aatual);
}
}
validames(int matual) //Função para validação de mês
{
{
printf("\nO valor digitado esta incorreto, valores permitidos {1-12}.");
printf("\nDigite novamente o mês atual : ");
scanf("%d",&matual);
getchar();
}
if(matual > 12 || matual == 0)
{
validames(&matual);
}
}
validadia(int datual) //Função para validação de dia
{
{
printf("\nO valor digitado esta incorreto, valores permitidos {1-31- Exceto Fevereiro}.");
printf("\nDigite novamente o dia atual : ");
scanf("%d",&datual);
getchar();
}
if(datual > 31 || datual == 0)
{
validadia(&datual);
}
}
validaanasc(int anasc) //Função para validação de ano nascimento
{
{
printf("\nO valor digitado esta incorreto, valores permitidos {1868-2018}.");
printf("\nDigite novamente o ano de nascimento : ");
scanf("%d",&anasc);
getchar();
}
if(anasc > 1867 || anasc ==2018)
{
validaanasc(&anasc);
}
}
validamnasc(int mnasc) //Função para validação de mes nascimento
{
{
printf("\nO valor digitado esta incorreto, valores permitidos {1-12}.");
printf("\nDigite novamente o mês nascimento : ");
scanf("%d",&mnasc);
getchar();
}
if(mnasc > 12 || mnasc == 0)
{
validamnasc(&mnasc);
}
}
validadnasc(int dnasc) //Função para validação de dia nascimento
{
{
printf("\nO valor digitado esta incorreto, valores permitidos {1-31}.");
printf("\nDigite novamente o dia nascimento : ");
scanf("%d",&dnasc);
getchar();
}
if(dnasc > 31 || dnasc == 0)
{
validadnasc(&dnasc);
}
}
void main()
{
setlocale(LC_ALL,"");
int calendario[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
int datual,matual,aatual,dnasc,mnasc,anasc,bissesto=0;
int totalAnos, totalMes, totalDias, diasMes, anoBissexto, bissexto;
if( aatual == 0 || aatual >1867 || aatual ==2018 ) //Entrada do ano atual
{
printf("\nDigite o ano atual: ");
scanf("%d",&aatual);
}
printf("\nDigite o mês atual: "); //Entrada do mês atual
scanf("%d",&matual);
if(matual > 12 || matual == 0)
{
validames(&matual);
}
printf("\nDigite o dia atual : "); //Entrada do dia atual
scanf("%d",&datual);
if(datual > 31 || datual == 0)
{
validadia(&datual);
}
if( anasc == 0 || anasc > 1867 || anasc ==2018 )
{
printf("\nDigite o ano de seu Nascimento: "); //Entrada do ano nascimento
scanf("%d",&anasc);
}
if( mnasc == 0 || mnasc > 12 )
{
printf("\nDigite seu mês de Nascimento: "); //Entrada do mês nascimento
scanf("%d",&mnasc);
}
if ( dnasc == 0 || dnasc > 31 )
{
printf("\nDigite o dia de seu Nascimento : "); //Entrada do dia nascimento
scanf("%d",&dnasc);
}
int ValidacaoMesDia( ) // aqui valida o mes e fala se e bissexto ou nao
{
if(matual==1 & datual <= 31)
{
int Janeiro= matual;
}
else
if(matual==2 & datual <= 29)
{
if (aatual%4==0 & datual <= 29 )
{
int Fevereiro= matual;
bissexto = 1;
}
else
if( datual <= 28 )
{
int Fevereiro= matual;
bissexto = 0;
}
}
else
if(matual==3 & datual <= 31)
{
int Marco= matual;
}
else
if(matual==4 & datual <=30)
{
int Abril= matual;
}
else
if(matual==5 & datual <=31)
{
int Maio= matual;
}
else
if(matual==6 & datual<=30)
{
int Junho= matual;
}
else
if(matual==7 & datual <= 31)
{
int Julho= matual;
}
else
if(matual==8 & datual <=31)
{
int Agosto= matual;
}
else
if(matual==9 & datual <= 30)
{
int Setembro= matual;
}
else
if(matual==10 & datual <= 31)
{
int Outubro= matual;
}
else
if(matual==11 & datual <= 30)
{
int Novembro= matual;
}
else
if(matual==12 & datual <= 31)
{
int Dezembro= matual;
}
else
{
printf("Erro Confirme os dados novamente... \n\n");
return ColetaDados( );
}
if (aatual % 4 == 0 && (aatual % 400 == 0 || aatual % 100 != 0)) // ano em que atual é bissexto
{
printf("\nAno atual é bissexto.\n");
}
else
{
printf("\nAno atual não é bissexto.\n");
}
if (anasc % 4 == 0 && (anasc % 400 == 0 || anasc % 100 != 0)) // ano em que nasceu é bissexto
{
printf("\nAno que voçê nasceu é bissexto.\n");
}
else
{
printf("\nAno que voçê nasceu não é bissexto.\n");
}
if(matual < mnasc) //Se não tiver feito aniversário, desconta 1
{
totalAnos = aatual - anasc -1;
totalMes = totalAnos * 12;
totalDias = totalMes * 365 + bissesto;
}
else if (matual = mnasc) //Se tiver no mes do aniversario
{
if(datual >= dnasc) //Verifiva se está no dia ou já passou
{
totalAnos = aatual - anasc;
totalMes = totalAnos * 12;
totalDias = totalMes * 365 + bissesto;
}
else //Se já passou do mes do aniversario
{
totalAnos = aatual - anasc;
totalMes = totalAnos * 12;
totalDias = totalMes * 365 + bissesto;
}
}
printf("Sua idade é: %d\n", totalAnos); //mostra idade da pessoa
system("PAUSE");
return 0;
}
}