Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*header fajl DATUM*/
- class datum
- {
- public:
- void create (int d,int m,int g);
- void setDan(int d);
- void setMjesec(int m);
- void setGodina(int g);
- int getKonacnodana (int dan2,int mjesec2,int godina2);
- int getMjesec_dani (int m);
- int getPrestupna ();
- int getDani_do_kraja ();
- private:
- int dan, mjesec, godina;
- };
- #endif
- /*zavrsetak header fajl */
- /*.cpp fajl datum_klasa_funkcije.cpp // definisanje operacija klase datum//*/
- #include "datum.h"
- void datum:: create (int d, int m, int g)
- {
- dan=d;
- mjesec=m;
- godina=g;
- }
- void datum:: setDan(int d)
- { dan=d; }
- void datum:: setMjesec(int m)
- { mjesec=m; }
- void datum:: setGodina(int g)
- { godina=g; }
- int datum:: getMjesec_dani (int m)
- {
- if (m==4 || m==6 || m==9 || m==11)
- return 30;
- else
- if (m==2)
- if (getPrestupna()==366)
- return 29;
- else
- return 28;
- else
- return 31;
- }
- int datum:: getPrestupna ()
- {
- if (godina%4==0)
- return 366;
- else return 365;
- }
- int datum:: getDani_do_kraja ()
- {
- int suma=0;
- for (int i=dan+1;i<=getMjesec_dani(mjesec);i++)
- suma+=1;
- return suma;
- }
- int datum:: getKonacnodana(int dan2, int mjesec2, int godina2)
- {
- if (dan==dan2&&mjesec==mjesec2&&godina==godina2)//ako su datumi isti
- return 0;
- if (mjesec==mjesec2&&godina==godina2)//ako se razlikuju samo dani
- return dan2-dan;
- if (godina==godina2)//ako je samo godina ista
- {
- int suma=0;
- for (int i=mjesec+1;i<mjesec2;i++)
- suma+=getMjesec_dani(i);
- return getDani_do_kraja()+dan2+suma;
- }
- else//ako ni godina nije ista
- {
- int suma_mjesec=0;
- for(int i=mjesec+1;i<=12;i++)
- suma_mjesec+=getMjesec_dani(i);
- for(int i=1;i<mjesec2;i++)
- suma_mjesec+=getMjesec_dani(i);
- return getDani_do_kraja()+suma_mjesec+dan2;
- }
- }
- /*zavrsetak definicija operacija klase DATUM*/
- /*GLAVNI PROGRAM ZA TESTIRANJE KLASE DATUM*/
- #include <iostream>
- #include "datum.h"
- using namespace std;
- int main()
- {
- datum objekt1;
- objekt1.create(27,5,1991);
- /*testiranje aplikacije*/
- cout<<"Isti datumi: "<<objekt1.getKonacnodana(27,5,1991)<<endl;//0
- cout<<"Ako je samo razlika u danima [27/5/1991] i [30/5/1991] "<<objekt1.getKonacnodana(30,5,1991)<<endl;
- cout<<"Ako je razlika u mjesecima [27/5/1991] i [5/6/1991] "<<objekt1.getKonacnodana(5,6,1991)<<endl;
- cout<<"Ako je razlika vise od mjesec dana [27/5/1991] i [30/6/1991] "<<objekt1.getKonacnodana(30,6,1991)<<endl;
- objekt1.setMjesec(2);
- objekt1.setGodina(1992);
- cout<<"Ako se razlika nalazi u prestupnoj godini\n mjesec april [27/2/1992] i [3/3/1992] " <<objekt1.getKonacnodana(3,3,1992)<<endl;
- objekt1.setGodina(1991);
- cout<<"Ako se razlika nalazi u NE prestupnoj godini\n mjesec april [27/2/1991] i [3/3/1991] " <<objekt1.getKonacnodana(3,3,1991)<<endl;
- cout<<"Ako je razlika tacno jedna godina (365 dana) [27/2/1991] i [27/2/1992] "<<objekt1.getKonacnodana(27,2,1992)<<endl;
- objekt1.setGodina(1992);
- cout<<"Ako je razlika tacno jedna godina (366 dana) [27/2/1992] i [27/2/1993] "<<objekt1.getKonacnodana(27,2,1993)<<endl;
- /*ZAVRSETAK TESTIRANJA APLIKACIJE*/
- system("pause>null");
- return 0;
- }
- /*ZAVRSETAK GLAVNOG PROGRAMA*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement