Classe DiadoAno com Construtor
Ir para navegação
Ir para pesquisar
#include <iostream>
#define ANOATUAL 2018
using namespace std;
//Declaração da classe DiadoAno:
class DiadoAno
{ public:
DiadoAno(int d, int m, int a,int nasc); //Declaração do construtor da classe!!!
private:
int dia; //1-31
int mes; //1-12
int ano; //0-2017
int idade;
int anonasc;
void VerificaData();
char * mesextenso;
};
//Função "usuária" da classe - main:
int main()
{ DiadoAno hoje(07,3,2018, 2010), amanha(1, 1, 2012,1971); //Objetos já inicializados
return 0;
}
//Construtor
DiadoAno::DiadoAno(int d, int m, int a,int nasc)
{ dia = d;
mes = m;
ano = a;
anonasc = nasc;
VerificaData();
}
//Método PRIVADO VerificaData() da classe DiadoAno:
void DiadoAno::VerificaData()
{ int ehbissexto=0, diamax, dataok=1;
if(dia <1 || dia>31)
{
cout<< "\nErro no dia fornecido!!!\n\n";
dataok= 0;
}
if (ano <0 || ano > ANOATUAL)
{
cout<< "\nErro no ano fornecido!!! Entre com um valor entre 0 e " << ANOATUAL << "!\n\n";
dataok =0;
}
if( (!(ano%4)&&(ano%100)) || (!(ano%400)))
ehbissexto = 1;
idade = ANOATUAL - ano;
switch(mes)
{ case 1: mesextenso= " Janeiro ";
diamax = 31;
break;
case 2: mesextenso=" Fevereiro " ;
diamax = ehbissexto? 29: 28;
break;
case 3: mesextenso=" Março ";
diamax = 31;
break;
case 4: mesextenso= " Abril ";
diamax = 30;
break;
case 5: mesextenso= " Maio ";
diamax = 31;
break;
case 6: mesextenso=" Junho ";
diamax = 30;
break;
case 7: mesextenso= " Julho ";
diamax = 31;
break;
case 8: mesextenso=" Agosto ";
diamax = 31;
break;
case 9: mesextenso=" Setembro ";
diamax = 30;
break;
case 10: mesextenso= " Outubro ";
diamax = 31;
break;
case 11: mesextenso= " Novembro ";
diamax = 30;
break;
case 12: mesextenso=" Dezembro ";
diamax = 31;
break;
default: cout<< "\nErro no mes fornecido!!! Entre com um valor entre 1 e 12\n\n";
dataok = 0;
break;
}
if (dataok && (dia<=diamax))
{ idade = ano - anonasc;
cout << "\nHoje \202 dia: " << dia << " de " << mesextenso << " de " << ano << ".\n";
cout << "Voce completa "<< idade << " anos de idade , no ano de " << ano << "\n";
if(ano != ANOATUAL)
cout << "\nE completara"<< (ANOATUAL - anonasc) << " anos de idade , no ano de " << ANOATUAL << "\n\n\n";
if(ehbissexto) cout << "\n O ano de " << ano << " \202 bissexto! \n";
}
else
if(dia>diamax)
cout << "\nO mes de "<< mesextenso << "so tem " << diamax << " dias!!!\n DATA INVALIDA!\n\n\n";
else
cout<< "\n DATA INVALIDA!\n\n\n";
}