标题:
STC89C52单片机四则运算出错
[打印本页]
作者:
lern01
时间:
2018-11-5 18:13
标题:
STC89C52单片机四则运算出错
设:bufTime.year = 18, bufTime.mon = 11, bufTime.day = 4算出的w的值等于2,正确值应该是0。不知是什么原因,望大侠们指点,先谢谢了!
void RefreshTimeShow()
{
unsigned int d, m, y, w;
ShowBcdByte(16, 0, bufTime.year); //Year
ShowBcdByte(48, 0, bufTime.mon); //Month
ShowBcdByte(80, 0, bufTime.day); //Date
ShowBcdByte(0, 2, bufTime.hour); //Hour
ShowBcdByte(32, 2, bufTime.min); //Minutes
ShowBcdByte(64, 2, bufTime.sec); //Seconds
d = bufTime.day;
m = bufTime.mon;
y = 2000 + bufTime.year;
if(m == 1 || m == 2)
{
m += 12;
y--;
}
w = (d + 1 + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400)%7;
bufTime.week = (unsigned char)w;
ShowBcdByte(32, 4, bufTime.week);
}
作者:
devcang
时间:
2018-11-5 19:14
vc中测试正常,,,,,,好好检查一下各数值。。。。。。。。
作者:
lern01
时间:
2018-11-5 23:53
devcang 发表于 2018-11-5 19:14
vc中测试正常,,,,,,好好检查一下各数值。。。。。。。。
我的是STC89单片机,折腾了一个晚上,还是没有找出问题
作者:
cjm82
时间:
2018-11-6 09:36
w = (d + 1 + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400)%7;
不要中了谭浩强的遗毒...把这句表达式拆开来写吧...DEBUG的时候也更容易发现问题.
作者:
majip117
时间:
2018-11-6 10:54
w = (d + 1 + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400)%7;
不要中了谭浩强的遗毒...把这句表达式拆开来写吧...DEBUG的时候也更容易发现问题.
对
作者:
lern01
时间:
2018-11-6 19:59
终于搞明白了,感谢各位了!!!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1