Oppure

Loading
15/12/09 16:11
matteog
ciao a tutti stò scrivendo un programma in programmazione ad oggetti dove devo fare la somma e la sottrazione di due date riceveute in ingresso e verificare se la data 1 inserita è compatibile(nel senso che posso usare un agenda di quell'anno per vdere che giorno è nella seconda data e che i due giorni devono coincidere)con la seconda.Ho un problema perchè non sò come trasformare la data dopo averla sommata, mi dareste una mano?e conoscete qualche funzione che mi dà che giorno della settimana era o sarà?adesso vi posto il codice grazie mille:

#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;
}



:(

EDIT by HeDo: Titolo non corretto, non siamo al bar. "Ciao a tutti" non è plausibile in un titolo.
Ultima modifica effettuata da HeDo 15/12/09 16:52
aaa