找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2353|回復: 5
打印 上一主題 下一主題
收起左側

STC89C52單片機四則運算出錯

[復制鏈接]
跳轉到指定樓層
樓主
ID:160658 發(fā)表于 2018-11-5 18:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
設: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);
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:277550 發(fā)表于 2018-11-5 19:14 | 只看該作者
vc中測試正常,,,,,,好好檢查一下各數(shù)值。。。。。。。。
回復

使用道具 舉報

板凳
ID:160658 發(fā)表于 2018-11-5 23:53 | 只看該作者
devcang 發(fā)表于 2018-11-5 19:14
vc中測試正常,,,,,,好好檢查一下各數(shù)值。。。。。。。。

我的是STC89單片機,折騰了一個晚上,還是沒有找出問題
回復

使用道具 舉報

地板
ID:388197 發(fā)表于 2018-11-6 09:36 | 只看該作者
w = (d + 1 + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400)%7;
不要中了譚浩強的遺毒...把這句表達式拆開來寫吧...DEBUG的時候也更容易發(fā)現(xiàn)問題.
回復

使用道具 舉報

5#
ID:373093 發(fā)表于 2018-11-6 10:54 | 只看該作者

w = (d + 1 + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400)%7;
不要中了譚浩強的遺毒...把這句表達式拆開來寫吧...DEBUG的時候也更容易發(fā)現(xiàn)問題.

回復

使用道具 舉報

6#
ID:160658 發(fā)表于 2018-11-6 19:59 | 只看該作者
終于搞明白了,感謝各位了。!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表