Advertisement
DMG

Razlika datuma (S)

DMG
Apr 2nd, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.98 KB | None | 0 0
  1. // dragutinmarjanovic
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. bool prestupna (int a)
  6. {
  7.      if ((a%4==0 && a%100!=0)||(a%400==0))
  8.      return true;
  9.      else return false;
  10. }
  11.  
  12. long long br_dana(int mg, int d, int m, int g)
  13. {
  14.      long long s = 0;
  15.      
  16.      for (int i=mg; i<g; i++)
  17.          if (prestupna(i)==true)
  18.             s = s + 366;
  19.          else
  20.             s = s + 365;
  21.            
  22.      for (int i=1; i<m; i++)
  23.      switch(i)
  24.      {
  25.               case 1: case 3: case 5: case 7: case 8: case 10: case 12: s = s + 31; break;
  26.               case 4: case 6: case 9: case 11: s = s + 30; break;
  27.               case 2:
  28.                    if (prestupna(g)==true)
  29.                       s = s + 29;
  30.                    else
  31.                       s = s + 28;
  32.               break;
  33.      }
  34.      
  35.      s = s + d;
  36.      
  37.      return s;
  38. }
  39.  
  40. bool provjera_datuma (int d, int m, int g)
  41. {
  42.      bool p = true;
  43.      
  44.      if (d<1 || m<1 || m>12)
  45.      p = false;
  46.  
  47.      switch(m)
  48.      {
  49.               case 1: case 3: case 5: case 7: case 8: case 10: case 12: if (d>31) p = false; break;
  50.               case 4: case 6: case 9: case 11: if (d>30) p = false; break;
  51.               case 2:
  52.                    if (prestupna(g)==true) {if (d>29) p = false;}
  53.                    else {if (d>28) p = false;}
  54.               break;
  55.      }
  56.      
  57.      return p;
  58. }
  59.  
  60. main()
  61. {
  62.       int d1, d2, m1, m2, g1, g2, mg;
  63.      
  64.       cin >> d1 >> m1 >> g1;
  65.       cin >> d2 >> m2 >> g2;
  66.      
  67.       if (provjera_datuma(d1, m1, g1)==true && provjera_datuma(d2, m2, g2)==true)
  68.       {
  69.           if (g1<g2)
  70.           mg = g1;
  71.           else mg = g2;
  72.           if (br_dana(mg, d1, m1, g1) - br_dana(mg, d2, m2, g2) >= 0)
  73.               cout << br_dana(mg, d1, m1, g1) - br_dana(mg, d2, m2, g2) << endl;
  74.           else
  75.               cout << br_dana(mg, d2, m2, g2) - br_dana(mg, d1, m1, g1) << endl;
  76.       }
  77.       else cout << "Ilegalan datum!" << endl;
  78.      
  79.       system ("PAUSE");      
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement