关于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 ;          
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
辉煌007
1楼-- · 2019-07-16 07:48
小弟是新手,请各位大侠多多指教
huangjunbo
2楼-- · 2019-07-16 08:26
 精彩回答 2  元偷偷看……
辉煌007
3楼-- · 2019-07-16 11:30
huangjunbo 发表于 2012-4-10 10:00
请在仿真中调试!

我已经仿真了,计算不正确,用手算也对啊,不知道为啥

一周热门 更多>