aytdev

days of an year uva

May 16th, 2021
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.62 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4.  
  5. #define sp(y) fixed<<setprecision(y)
  6. #define w(t) int x;cin>>x;while(x--)
  7. #define pi 2*acos(0.0)
  8. #define bg begin()
  9. #define en end()
  10. #define all(x) x.begin(),x.end()
  11. #define sortarr(x) sort(x,x+arrsize(x))
  12. #define arrsize(x) sizeof(x)/sizeof(x[0])
  13. #define sortall(x) sort(all(x))
  14. #define formn(m,n) for(m;m<=n;m++)
  15. #define mp make_pair
  16. #define pb push_back
  17. #define vi vector<ll>
  18. #define vs vector<string>
  19. #define REP(i,a,b) for (int i=a;i<=b;i++)
  20. #define sq(a) (a)*(a)
  21. ll pow(ll c,ll d){return d==0?:c*pow(c,d-1);}
  22. ll gcd(ll a,ll b) {return b==0? a:gcd(b,a%b);}
  23. ll lcm(ll a,ll b) {return ((a*b)/gcd(a,b));}
  24. //solution
  25. #define mx 1000005
  26. int prime[mx];
  27.  
  28. void seive(){
  29. prime[0]=1;
  30. prime[1]=1;
  31. for(ll i=2;i<mx;i++){
  32. if(prime[i]==0){
  33. for(ll j=i*i;j<mx;j+=i){
  34. prime[j]=1;
  35. }
  36. }
  37.  
  38. }
  39. }
  40. string month[12] = {"January","February","March","April","May","June","July",
  41. "August","September","October","November","December"};
  42. string weekday[7] = {"Saturday","Sunday","Monday","Tuesday", "Wednesday","Thursday","Friday"};
  43. string zellersAlgorithm(int day, int month, int year){
  44. int mon;
  45. if(month > 2)
  46. mon = month; //for march to december month code is same as month
  47. else{
  48. mon = (12+month); //for Jan and Feb, month code will be 13 and 14
  49. year--; //decrease year for month Jan and Feb
  50. }
  51. int y = year % 100; //last two digit
  52. int c = year / 100; //first two digit
  53. int w = (day + floor((13*(mon+1))/5) + y + floor(y/4) + floor(c/4) + (5*c));
  54. w = w % 7;
  55. return weekday[w];
  56. }
  57. //monthanddatecheck
  58. int monthanddatecheck(int m,int d){
  59. if(m ==2 ){
  60. if(d==29){
  61. return 29;
  62. }else if(d<29 && d>0){
  63. return 1;
  64. }else{
  65. return 0;
  66. }
  67.  
  68. }else if(m<0 || m>12 || d<0 || d>31){
  69. return 0;
  70. }
  71. return 1;
  72. }
  73.  
  74. int solve(){
  75. int m,d,y;
  76. while(cin>>m>>d>>y){
  77. if(m==0 && d==0 && y==0){
  78. break;
  79. }
  80. int c = monthanddatecheck(m,d);
  81. if(c){
  82. cout<<month[m-1]<<" ";
  83.  
  84. cout<<d<<", "<<y<<" is a ";
  85. cout<<zellersAlgorithm(d,m,y)<<endl;
  86.  
  87. }else{
  88. cout<<m<<"/"<<d<<"/"<<y<<" is an invalid date."<<endl;
  89. }
  90.  
  91. }
  92.  
  93.  
  94. return 0;
  95. }
  96. //end solution
  97. int main(){
  98. solve();
  99. }
  100.  
Advertisement
Add Comment
Please, Sign In to add comment