#include "stdafx.h"
#include <iostream>
using namespace std;
class data
{
public:
//costruttore
data(int =0,int = 0,int = 0);
void setData();
void getData();
data operator+ (data d1);
data operator- (data d1);
public:
int giorno;
int mese;
int anno;
};
//File di definizione di classe data.cpp:
data::data(int gg,int mm, int aa)
{
giorno = gg;
mese = mm;
anno = aa;
}
data data::operator +(data d1)
{
data l;
l.giorno= giorno+d1.giorno;
l.mese=mese+d1.mese;
l.anno=anno+d1.anno;
return l;
}
data data::operator -(data d1)
{
data l;
l.giorno=giorno-d1.giorno;
l.mese=mese-d1.mese;
l.anno=anno-d1.anno;
return l;
}
void data::setData()
{
int g,m,a;
do
{
cout << "Inserire il giorno: ";
cin >> g;
}
while ( !(g >0 && g < 32)) ;
giorno = g;
do
{
do
{
cout << "Inserire il mese: ";
cin >> m;
}
while( (m == 2 && giorno > 28) ||
(m==4||m==6||m==9 ||m==11 && giorno == 31));
}
while ( !(m >0 && m < 13)) ;
mese = m;
do
{
cout << "Inserire l'anno: ";
cin >> a;
}
while ( !(a >1000 && a < 9999)) ;
anno = a;}
void data::getData()
{
cout << "la data selezionata corrisponde a " << giorno
<< '/' << mese << '/' << anno << endl;
}
int main()
{
//inizializza una data con valori di default
data d,d1;
//setta la data
d.setData();
d1.setData();
//mostra la data in formato xx/xx/xxxx
d.getData();
d1.getData();
data ris=d1+d;//qui somma ma viene tipo 50/22/1994 come riportarlo ad un concetto di data?
cout<<ris.giorno<<" "<<ris.mese<<" "<<ris.anno<<endl;
data dif;
if(d1.anno>=d.anno)
{
dif=d1-d;
}
else
{
dif=d-d1;
}
if(dif.giorno<0)
{
dif.giorno=0;
}
if(dif.mese<0)
{
dif.mese=0;
}
if(dif.anno<0)
{
dif.anno=0;
}
cout<<dif.giorno<<" "<<dif.mese<<" "<<dif.anno<<endl;
system("PAUSE");
return 0;
}