标题:
51单片机C语言计算某一天是星期几源程序(菜农星期算法)
[打印本页]
作者:
datouyuan
时间:
2022-4-18 11:59
标题:
51单片机C语言计算某一天是星期几源程序(菜农星期算法)
算法用C语言实现。
#include <REG52.H>
#include <stdio.h>
/*
菜农星期算法
返回值:星期 对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
c:世纪-1,如2022年是21世纪,c取值20
y:年,取后两位数。如2022年,y取值22
m:月
d:日
*/
unsigned char getweek(unsigned char c, unsigned char y, unsigned char m, unsigned char d)
{
if (m <= 2)//1,2月变为去年的13,14月
{
if(0==y)
{
y = 99;
if (0==c)
c = 99;
else
c --;
}
else
y --;
m |= 4;//1,2月查5,6月表
}
/*
菜农星期算法
星期=(百年%4*5+年+年/4+(13*月+8)/5+日)%7
*/
return ((c & 3) * 5 + y + (y >> 2) + (13 * m + 8) / 5 + d) % 7;
}
void main (void)
{
//Setup the serial port for 1200 baud at 16MHz.
SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
TH1 = 221; /* TH1: reload value for 1200 baud @ 16MHz */
TR1 = 1; /* TR1: timer 1 run */
TI = 1; /* TI: set TI to send first char of UART */
printf("20220418 week=%bd\n",getweek(20, 22, 4, 18));
while(1){
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1