找回密码
 立即注册
查看: 2828|回复: 27

简简单单 8H/32G系列单片机RTC专用的星期计算代码

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:522
  • 最近打卡:2025-08-24 00:56:18
已绑定手机

40

主题

2410

回帖

3256

积分

荣誉版主

积分
3256
发表于 2024-6-24 00:31:53 | 显示全部楼层 |阅读模式
最近看到了很多关于RTC的应用贴,我也跟风发一个 8H/32G系列单片机RTC专用的日期换算星期极简代码:
  1. unsigned char code weekdata[12]={0,3,3,6,1,4,6,2,5,0,3,5};
  2. #define WEEK  ((6+weekdata[MONTH-1]+YEAR+DAY-(((YEAR % 4) || (MONTH > 2))?0:1) + YEAR/4)%7)
复制代码
代码非常非常简单,只有两行,只定义了一个偏移码表和计算星期的宏定义,这个码表支持2000~2099年之间的星期计算,也可以通过修改码表支持其它年份范围的计算,欢迎各路大佬验证代码和讨论原理,也欢迎交流更精简的版本。
调用方法非常简单,直接把WEEK当成寄存器使用即可:

  1. printf("%02bu-%02bu-%02bu %02bu:%02bu:%02bu-%03bu %bu\r\n",YEAR,MONTH,DAY,HOUR,MIN,SEC,SSEC,WEEK);
复制代码
带入一个日期,验算过程如下:
比如20241130

((6+weekdata[11-1]+24+30+24/4)%7) = (6+3+24+30+6)% 7 = 69 % 7 = 6 = 星期六
结果正确!!

1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
睁开眼睛做场梦~~~
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:161
  • 最近打卡:2025-08-23 08:11:44

775

主题

1万

回帖

1万

积分

管理员

积分
18735
发表于 2024-11-20 00:41:25 | 显示全部楼层
截图202411200039477626.jpg


截图202411200040417141.jpg


截图202411200041208805.jpg

回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:632
  • 最近打卡:2025-08-23 07:52:22
已绑定手机

54

主题

1892

回帖

3566

积分

论坛元老

积分
3566
发表于 2024-6-24 06:21:00 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:536
  • 最近打卡:2025-08-24 00:00:11
已绑定手机

19

主题

3257

回帖

5699

积分

论坛元老

积分
5699
发表于 2024-6-24 06:42:19 来自手机 | 显示全部楼层
这个不错啊。就2行
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:441
  • 最近打卡:2025-08-23 08:34:51

12

主题

126

回帖

1965

积分

金牌会员

积分
1965
发表于 2024-7-4 20:36:01 | 显示全部楼层
计算第几周的??
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:576
  • 最近打卡:2025-08-24 00:05:30

3

主题

86

回帖

1711

积分

金牌会员

积分
1711
发表于 2024-7-4 21:58:29 | 显示全部楼层
lzz*** 发表于 2024-7-4 20:36
计算第几周的??

计算星期几的,0应该是星期天
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:219
  • 最近打卡:2025-06-27 10:56:19
已绑定手机

36

主题

566

回帖

1980

积分

荣誉版主

积分
1980
发表于 2024-7-4 22:54:33 | 显示全部楼层
公式不错
不想算的,就读,哈哈
[22:42:48.194]接收←{"success":"1","result":{"timestamp":"1720104168","datetime_1":"2024-07-04 22:42:48","datetime_2":"2024年07月04日 22时42分48秒","week_1":"4","week_2":"星期四","week_3":"周四","week_4":"Thursday"}}
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2024-09-12 20:44:49

2

主题

64

回帖

358

积分

中级会员

积分
358
发表于 2024-7-5 06:38:35 | 显示全部楼层
学习
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:387
  • 最近打卡:2025-08-23 15:12:16

0

主题

61

回帖

1732

积分

金牌会员

积分
1732
发表于 2024-7-5 08:40:29 | 显示全部楼层
收藏了
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:613
  • 最近打卡:2025-08-23 08:00:06
已绑定手机

1

主题

840

回帖

2029

积分

金牌会员

积分
2029
发表于 2024-7-5 09:12:18 | 显示全部楼层
给您点个赞
靡不有初,鲜克有终
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:197
  • 最近打卡:2025-08-19 08:46:28
已绑定手机

5

主题

109

回帖

553

积分

高级会员

积分
553
发表于 2024-7-5 10:41:43 | 显示全部楼层
顶,谢谢分享
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-8-24 02:38 , Processed in 0.145913 second(s), 103 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表