#include <iostream> using namespace std; bool isleap(int y) { if((y%4==0)&&((y%100!=0)||(y%400==0))) return true; else return false; } int main(void) { int y,m,d; cin>>y>>m>>d; int r; //count days between 20130809 and ymd int y0=y; int m0=m; int d0=d; r=0; int i; int p[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int pp[12]={31,29,31,30,31,30,31,31,30,31,30,31}; for(i=y;i<2014;i++) { if(isleap(i)) { int j; for(j=m;j<13;j++) { int k; for(k=d;k<=pp[j-1];k++) { r++; } d=1; } } else { int j; for(j=m;j<13;j++) { int k; for(k=d;k<=p[j-1];k++) { if(k==9&&j==8&&i==2013) if(r!=0) { cout<<((5-r%7)>0?(5-r%7):(12-r%7)); system("pause"); return 0; } r++; } d=1; } } m=1; } d=9; m=8; y=2013; r=0; for(i=y;i<y0+1;i++) { if(isleap(i)) { int j; for(j=m;j<13;j++) { int k; for(k=d;k<=pp[j-1];k++) { if(k==d0&&j==m0&&i==y0) if(r!=0) { cout<<((5+r%7)>7?(r%7-2):(5+r%7)); system("pause"); return 0; } r++; } d=1; } } else { int j; for(j=m;j<13;j++) { int k; for(k=d;k<=p[j-1];k++) { //r++; if(k==d0&&j==m0&&i==y0) if(r!=0) { cout<<((5+r%7)>7?(r%7-2):(5+r%7)); system("pause"); return 0; } r++; } d=1; } } m=1; } cout<<5; system("pause"); return 0; }
计算某一天星期几的一种解法
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java如何得到某一天是星期几
利用Calendar得到星期天数
Java 职场 休闲 -
计算任何一天是星期几的几种算法
计算任何一天是星期几的几种算法一:常用公式W = [Y-1] + [(Y-1)/4] -
计算星期几 复杂度 javascript 取整