关于ds1302和1602星期计算的问题

2019-07-16 06:05发布

请各位大侠看一下我这个星期计算的函数对不对
//---------------------------------------------------
//判断是否为闰年
//---------------------------------------------------
uchar isLeapYear(uint y)
{
  return (y%4==0&&y%100!=0)||(y&400==0);
}
//---------------------------------------------------
//求自2000.1.1开始的任何一天是星期几
//---------------------------------------------------
void RefreshWeekDay()
{
  uint i,d,w=5;//已知1999.12.31是周五
  for(i=2000;i<2000+Datetime[6];i++)
  {                                               
     d=isLeapYear(i)?366:365;
         w=(w+d)%7;         
  }
  d=0;
  for(i=1;i<DateTime[4];i++)
          d+=MonthsDays[i];
  d+=DateTime[3];                  
  DateTime[5]=(w+d)%7 ;          
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。