#include <iostream>
#include <string>
using namespace std;
#include "Persona.h"
#include "Data.h"


Persona::Persona(string n, string c, int gg, int mm, int aa):data_nascita(gg, mm, aa)
{
	cout << "Invocato costruttore per Persona: " << n <<' '<< c << endl;
	   // le stampe nei costruttori sono solo per evidenziare la chiamata, normalmente non vanno inserite!
	nome=n;
	cognome=c;
	if (n.size()>25)
	{
		nome.resize(25);
		cout << "Errore! Lunghezza eccessiva nome: " << n<< endl;
		cout << n << "troncato a: "  << nome << endl;
	}
	if (c.size()>25)
		{
			cognome.resize(25);
			cout << "Errore! Lunghezza eccessiva cognome: " << c<< endl;
			cout << c << "troncato a: "  << cognome << endl;
		}
   cout << "Costruita Persona: " << nome <<' '<< cognome << endl;
   // le stampe nei costruttori sono solo per evidenziare la chiamata, normalmente non vanno inserite!
}

Persona::~Persona()
{cout << "Invocato distruttore per Persona: " << nome <<' '<< cognome << endl;}
                    
void Persona::stampa() const 
   { cout << "STAMPA DATI PERSONALI" << endl;
     cout << "Nome: " << nome <<" Cognome: " << cognome << endl << "Data di nascita: ";
     data_nascita.stampa();
     cout << endl;
   }

int Persona::eta()  
   { 
    Data oggi;
    oggi.setToday();
    int eta=oggi.diff(data_nascita);
	return (eta/365);
   }
