fork download
  1. #include <iostream>
  2.  
  3. using namespace std ;
  4.  
  5. class myDate
  6. {
  7. public :
  8. myDate() ;
  9. myDate(int X) ;
  10. myDate( int year, int month, int day) ;
  11. int dayOfYear() ;
  12. bool isLeap(int year) ;
  13. int Year() ;
  14. int Month() ;
  15. int Day() ;
  16. friend const int operator -(const myDate& day1 , const myDate& day2) ;
  17. private :
  18. int YEAR ;
  19. int MONTH ;
  20. int DAY ;
  21. int A ;
  22. } ;
  23.  
  24. int main()
  25. {
  26. myDate D1() , D2(2015,12,31) , D3(2016,3,1) ;
  27.  
  28. int X ;
  29.  
  30. X = D2 - D3 ;
  31.  
  32. cout<<"D2 : "<<D2.dayOfYear()<<endl ;
  33.  
  34. cout<<"D3 : "<<D3.dayOfYear()<<endl ;
  35.  
  36. cout<<endl<<X ;
  37. }
  38.  
  39. myDate::myDate() : YEAR(0) , MONTH(0) , DAY(0)
  40. {}
  41.  
  42. myDate::myDate( int year, int month, int day) : YEAR(year) , MONTH(month) , DAY(day)
  43. {}
  44.  
  45. int myDate::Day()
  46. {
  47. return DAY ;
  48. }
  49.  
  50. bool myDate::isLeap(int year)
  51. {
  52. if( year % 400 == 0 )
  53. return 1 ;
  54. else if( year % 4 == 0 && year % 100 != 0 )
  55. return 1 ;
  56. else
  57. return 0 ;
  58. }
  59.  
  60. int myDate::dayOfYear()
  61. {
  62. int x = 0 ;
  63.  
  64. switch(MONTH-1)
  65. {
  66. case 12 : x+=31 ;
  67. case 11 : x+=30 ;
  68. case 10 : x+=31 ;
  69. case 9 : x+=30 ;
  70. case 8 : x+=31 ;
  71. case 7 : x+=31 ;
  72. case 6 : x+=30 ;
  73. case 5 : x+=31 ;
  74. case 4 : x+=30 ;
  75. case 3 : x+=31 ;
  76. case 2 :
  77. {
  78. if(isLeap(YEAR) == true)
  79. x+=29 ;
  80. if(isLeap(YEAR) == false)
  81. x+=28 ;
  82. }
  83. case 1 : x+=31 ;
  84. }
  85.  
  86. x=x+DAY ;
  87.  
  88. return x ;
  89. }
  90.  
  91. const int operator -(const myDate& day1 , const myDate& day2)
  92. {
  93. myDate DATE ;
  94.  
  95. int x,y,z,LeaPz = 0 ;
  96.  
  97. int i ;
  98.  
  99. int X ;
  100.  
  101. x = day1.dayOfYear() ;
  102. y = day2.dayOfYear() ;
  103.  
  104. if( day1.YEAR == day2.YEAR )
  105. {
  106. X = x-y ;
  107. if(X < 0)
  108. X = -X ;
  109. }
  110.  
  111. if( day1.YEAR - day2.YEAR > 0 )
  112. {
  113. z = day1.YEAR - day2.YEAR - 1 ;
  114.  
  115. for( i = day2.YEAR ; i < day1.YEAR ; i++ )
  116. {
  117. if( DATE.isLeap(i) ==1 )
  118. LeaPz ++ ;
  119. }
  120.  
  121. if(DATE.isLeap(day2.YEAR) ==1 )
  122. X = (366-y) + x + 365*(z-LeaPz) + 366*LeaPz ;
  123.  
  124. else
  125. X = (365-y) + x + 365*(z-LeaPz) + 366*LeaPz ;
  126. }
  127.  
  128. if( day1.YEAR - day2.YEAR < 0 )
  129. {
  130. z = day2.YEAR - day1.YEAR - 1 ;
  131.  
  132. for( i = day1.YEAR ; i < day2.YEAR ; i++ )
  133. {
  134. if( DATE.isLeap(i) ==1 )
  135. LeaPz ++ ;
  136. }
  137.  
  138. if(DATE.isLeap(day1.YEAR) == 1 )
  139. X = (365-x) + y + 365*(z-LeaPz) + 366*LeaPz ;
  140.  
  141. else
  142. X = (365-x) + y + 365*(z-LeaPz) + 366*LeaPz ;
  143. }
  144. return X ;
  145. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function 'const int operator-(const myDate&, const myDate&)':
prog.cpp:101:21: error: passing 'const myDate' as 'this' argument of 'int myDate::dayOfYear()' discards qualifiers [-fpermissive]
  x = day1.dayOfYear() ;
                     ^
prog.cpp:102:21: error: passing 'const myDate' as 'this' argument of 'int myDate::dayOfYear()' discards qualifiers [-fpermissive]
  y = day2.dayOfYear() ;
                     ^
stdout
Standard output is empty