久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3198|回復(fù): 19
打印 上一主題 下一主題
收起左側(cè)

輸入年月日時(shí)分秒,計(jì)算星期幾 這段單片機(jī)代碼是什么算法?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
我知道單片機(jī)程序怎么走,但算法是什么,有沒(méi)有依據(jù)?請(qǐng)教大家

星期.PNG (15.33 KB, 下載次數(shù): 86)

星期.PNG
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:624769 發(fā)表于 2022-4-21 17:58 | 只看該作者
一年 按 365 天算, 則 一年有 52周 多一天, 假定,全是平年,拋開(kāi)52周,那么過(guò)了多少年,就是過(guò)了天(相對(duì)于星期)所以,要計(jì)算星期,比較常用的方法,就是按照 1年加1天,閏年就多加1天的方法,來(lái)計(jì)算,把年就算完了,
到了同一年之后,你這段代碼里面,就是通過(guò) 月和日通過(guò) “表” 查出來(lái),其實(shí)也可以 通過(guò)計(jì)算日子,然后%7算出來(lái),看個(gè)人喜好吧。
回復(fù)

使用道具 舉報(bào)

板凳
ID:777603 發(fā)表于 2022-4-21 18:27 | 只看該作者
188610329 發(fā)表于 2022-4-21 17:58
一年 按 365 天算, 則 一年有 52周 多一天, 假定,全是平年,拋開(kāi)52周,那么過(guò)了多少年,就是過(guò)了天(相對(duì) ...

我還是有點(diǎn)不明白……它前面確實(shí)有個(gè)月修正數(shù)組,但我不明白
回復(fù)

使用道具 舉報(bào)

地板
ID:777603 發(fā)表于 2022-4-21 18:31 | 只看該作者
188610329 發(fā)表于 2022-4-21 17:58
一年 按 365 天算, 則 一年有 52周 多一天, 假定,全是平年,拋開(kāi)52周,那么過(guò)了多少年,就是過(guò)了天(相對(duì) ...

除以100,又取余。為什么21世紀(jì)又加100?
回復(fù)

使用道具 舉報(bào)

5#
ID:230742 發(fā)表于 2022-4-21 18:55 | 只看該作者
以前的日期顯示是881203指的是1988年,現(xiàn)在不同了,可能是2088年。
具體還是去百度知乎吧。比坐等快多了。
回復(fù)

使用道具 舉報(bào)

6#
ID:624769 發(fā)表于 2022-4-21 19:07 | 只看該作者
黃冬梅 發(fā)表于 2022-4-21 18:31
除以100,又取余。為什么21世紀(jì)又加100?

又+100 是因?yàn)樗挠?jì)算基準(zhǔn) 是1900年開(kāi)始的(即它的基準(zhǔn)值是吧1900年作為0 開(kāi)始算的所以他要得到1900年至今過(guò)了多少年),其實(shí)他是兜圈子,我的話,壓根不會(huì)用YearH,

直接 yearL = year - 1900; 連 if 都不需要了。
回復(fù)

使用道具 舉報(bào)

7#
ID:777603 發(fā)表于 2022-4-21 19:09 | 只看該作者
188610329 發(fā)表于 2022-4-21 19:07
又+100 是因?yàn)樗挠?jì)算基準(zhǔn) 是1900年開(kāi)始的(即它的基準(zhǔn)值是吧1900年作為0 開(kāi)始算的所以他要得到1900年至 ...

懂了,現(xiàn)在是到月修正表不懂了
回復(fù)

使用道具 舉報(bào)

8#
ID:624769 發(fā)表于 2022-4-21 19:09 | 只看該作者
黃冬梅 發(fā)表于 2022-4-21 18:27
我還是有點(diǎn)不明白……它前面確實(shí)有個(gè)月修正數(shù)組,但我不明白

你不明白我也沒(méi)辦法了, 一般計(jì)算  月日周,我都自己建數(shù)組的。也不麻煩,EXCLE里面拉一下也就出來(lái)了。用別人的還要猜,費(fèi)事。
回復(fù)

使用道具 舉報(bào)

9#
ID:777603 發(fā)表于 2022-4-21 19:13 | 只看該作者
188610329 發(fā)表于 2022-4-21 19:07
又+100 是因?yàn)樗挠?jì)算基準(zhǔn) 是1900年開(kāi)始的(即它的基準(zhǔn)值是吧1900年作為0 開(kāi)始算的所以他要得到1900年至 ...

u8 const table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; //月修正數(shù)據(jù)表
不懂這個(gè)月修正表是什么意思。       
temp2=temp2+day+table_week[month-1];這一句代碼我懂是這么多年多出來(lái)的天數(shù)和同一年的天數(shù)相加。這個(gè)月修正表是怎么計(jì)算來(lái)的,按我的邏輯是0,0……
回復(fù)

使用道具 舉報(bào)

10#
ID:624769 發(fā)表于 2022-4-21 19:26 | 只看該作者
黃冬梅 發(fā)表于 2022-4-21 19:13
u8 const table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; //月修正數(shù)據(jù)表
不懂這個(gè)月修正表是什么意思。       
...

這個(gè)表,代表 在1900年的時(shí)候, 每個(gè)月的 1號(hào), 前面一天,你當(dāng)作是"0號(hào)", 的星期幾, 0~6  代表 星期天~星期6
回復(fù)

使用道具 舉報(bào)

11#
ID:777603 發(fā)表于 2022-4-21 19:26 | 只看該作者
188610329 發(fā)表于 2022-4-21 19:09
你不明白我也沒(méi)辦法了, 一般計(jì)算  月日周,我都自己建數(shù)組的。也不麻煩,EXCLE里面拉一下也就出來(lái)了。用 ...

我懂了,謝謝樓主!
回復(fù)

使用道具 舉報(bào)

12#
ID:777603 發(fā)表于 2022-4-21 19:31 | 只看該作者
188610329 發(fā)表于 2022-4-21 19:26
這個(gè)表,代表 在1900年的時(shí)候, 每個(gè)月的 1號(hào), 前面一天,你當(dāng)作是"0號(hào)", 的星期幾, 0~6  代表 星期天~星 ...

以1900年為起點(diǎn),因?yàn)?900年1月1日是星期一。計(jì)算現(xiàn)在的年份距離1900年有多少年,然后平年52周多1天,閏年多2天,計(jì)算得到當(dāng)前年比完整的一周多了這么多天,再加上現(xiàn)在的天數(shù)和當(dāng)前月比完整周多幾天,把這三個(gè)加起來(lái)就是總的多出來(lái)的天數(shù),由于計(jì)算年份的時(shí)候已經(jīng)把閏年多出來(lái)的天數(shù)加進(jìn)去了,所以當(dāng)前年是閏年的話,還要在總數(shù)上減1天。
回復(fù)

使用道具 舉報(bào)

13#
ID:624769 發(fā)表于 2022-4-21 19:46 | 只看該作者
黃冬梅 發(fā)表于 2022-4-21 19:31
以1900年為起點(diǎn),因?yàn)?900年1月1日是星期一。計(jì)算現(xiàn)在的年份距離1900年有多少年,然后平年52周多1天,閏 ...

當(dāng)前年是閏年的話, 你還要考慮是2月前 還是3月后, 所以這個(gè)方法是有漏洞的. 你要加好幾個(gè)if去補(bǔ)這個(gè)漏洞,同樣,因?yàn)楝F(xiàn)在202x年所以沒(méi)有什么問(wèn)題,比如2100年,2200年 是非閏年還要再去閏年。所以……,不知道你這個(gè)星期計(jì)算具體派什么用,萬(wàn)年歷的話,其實(shí)沒(méi)必要著折騰。2020年以前的日子其實(shí)可以根本不考慮。作出來(lái)的東西,你當(dāng)她可以用20年,做一個(gè)2020~2040年每個(gè)月頭一天的表,也就240個(gè)字節(jié),直接 年*12+月, 查個(gè)表,直接出來(lái)不是更省事?
回復(fù)

使用道具 舉報(bào)

14#
ID:401564 發(fā)表于 2022-4-22 10:58 | 只看該作者
你這個(gè)是基于STM32的RTC功能的吧
STM32的RTC很雞肋的,精度取決于晶振,那就跟DS1302一個(gè)樣,并沒(méi)有日期和時(shí)間功能
只能通過(guò)累加有數(shù)值來(lái)計(jì)算
我看到這一個(gè)章節(jié)的內(nèi)容都是直接跳過(guò)不看了
這都用STM32了,還在乎那幾塊錢(qián)的成本,直接加一個(gè)DS3231或者RX8025T
回復(fù)

使用道具 舉報(bào)

15#
ID:777603 發(fā)表于 2022-4-22 19:14 | 只看該作者
Y_G_G 發(fā)表于 2022-4-22 10:58
你這個(gè)是基于STM32的RTC功能的吧
STM32的RTC很雞肋的,精度取決于晶振,那就跟DS1302一個(gè)樣,并沒(méi)有日期和時(shí) ...

我倒不覺(jué)得雞肋,已經(jīng)看明白了。能省則省,自帶的也挺好用的
回復(fù)

使用道具 舉報(bào)

16#
ID:16255 發(fā)表于 2022-4-25 11:01 | 只看該作者
188610329 發(fā)表于 2022-4-21 19:07
又+100 是因?yàn)樗挠?jì)算基準(zhǔn) 是1900年開(kāi)始的(即它的基準(zhǔn)值是吧1900年作為0 開(kāi)始算的所以他要得到1900年至 ...

我也不 if 了,直接按21世紀(jì)的來(lái)計(jì)算。當(dāng)前已經(jīng)是21世紀(jì)了,而且我斷定我的產(chǎn)品熬不到22世紀(jì)。
回復(fù)

使用道具 舉報(bào)

17#
ID:1064915 發(fā)表于 2023-8-8 17:48 | 只看該作者
(6+WeekData[month-1]+year+day+year/4)%7
WeekData[ ]={0,3,3,6,1,4,6,2,5,0,3,5};
// year    : 00-99
回復(fù)

使用道具 舉報(bào)

18#
ID:332444 發(fā)表于 2023-8-9 08:07 | 只看該作者
計(jì)算公歷都是無(wú)年限的,包括星期,有年限都是不正確的,為了減少計(jì)算量,設(shè)計(jì)了自適應(yīng)計(jì)算星期的函數(shù).
回復(fù)

使用道具 舉報(bào)

19#
ID:332444 發(fā)表于 2023-8-9 08:10 | 只看該作者
如下函數(shù)修改為單片機(jī)變量即可,返回值+1用7求余,無(wú)年限.
int 自適年一月一日周一值(int 年)
{//自適應(yīng)跳過(guò)400倍年之前,返回1月1日是周1的值。
        return ((年 > 400 ? --年 -= 年 / 400 * 400 : 年) ? 365 * 年 + ((年 / 4) - (年 / 100) + (年 / 400)) : 0);
}
————————————————
版權(quán)聲明:本文為CSDN博主「智者知已應(yīng)修善業(yè)」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xianfajushi/article/details/104001986

回復(fù)

使用道具 舉報(bào)

20#
ID:883242 發(fā)表于 2023-8-11 01:40 | 只看該作者
Y_G_G 發(fā)表于 2022-4-22 10:58
你這個(gè)是基于STM32的RTC功能的吧
STM32的RTC很雞肋的,精度取決于晶振,那就跟DS1302一個(gè)樣,并沒(méi)有日期和時(shí) ...

你搜下“l(fā)inux mktime 源代碼”,有個(gè)非常精妙的秒到日期轉(zhuǎn)換算法,對(duì)于STM32的簡(jiǎn)陋RTC來(lái)說(shuō)非常好用,秒到年月日小時(shí)分鐘瞬間就能算出來(lái)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲精品久久久久久豆腐 | 国产精品久久av | 久久青| 亚洲国产欧美91 | 久久综合久久久 | 久久999| 国产精品明星裸体写真集 | 久久黄视频 | 国产精品看片 | 黄色av网站在线观看 | 在线观看黄色电影 | 波多野结衣一区二区三区在线观看 | 国产我和子的乱视频网站 | 在线国产99| 亚洲国产aⅴ精品一区二区 免费观看av | 国产一级片网站 | 亚洲成av| 国产免费一区二区三区 | 美女国产 | 亚洲中字在线 | 一区二区三区欧美 | 成人精品一区二区三区 | 国产精品久久久久婷婷二区次 | 色婷婷精品久久二区二区蜜臂av | 日韩精品极品视频在线观看免费 | 91看片在线 | 一区二区福利视频 | 成人午夜在线 | 日韩免费一区 | 九九九视频在线 | 一区二区三区四区日韩 | a爱视频| 成人免费大片黄在线播放 | 亚洲国产一区视频 | av在线播放免费 | 国户精品久久久久久久久久久不卡 | www.亚洲.com| 黑人久久| 国产麻豆乱码精品一区二区三区 | 亚洲精品一区二区 | 亚洲一区二区在线视频 |