/* 如果为21世纪,年份数加100 */ if (yearH>19) yearL+=100; /* 所过闰年数只算1900年之后的 */ temp2=yearL+yearL/4; temp2=temp2%7; temp2=temp2+day+table_week[month-1]; if (yearL%4==0&&month<3) temp2--; *p=(temp2%7); }
第二种方法: int week(int cc,int yy,int mm,int dd) //世纪,年份,月份,日期
{
if (++mm<4)
{
mm+=4;
if (!yy--){yy=99;cc--;}
}
return ((cc&3)*5+yy+(yy/4)+(mm*13/5)+dd-1)%7;
}
第三种方法: int week(int y,int m,int d)//年、月、日 { int m_d[12]={2,5,5,1,3,6,1,4,7,2,5,7}; int i,j,k=0; int s=2; int w=0; if (((y%4==0)&&(y%100!=0))||(y%400)==0) { if (m<=2) j=y-1; else j=y; } else j=y; //润年计算,计算一共有多少个闰年 for (i=1904;i<=y;i=i+4) { if (i%100!=0) k++; else if (i%400==0) k++; } w=((j-1904+s+k)+m_d[m-1]+d)%7; return (w); }
文章评论(0条评论)
登录后参与讨论