?? rili.h
字號:
//星期
//(百年%4*5天+年+年/4+月星期表+日+2天)%7
unsigned char getweek(unsigned year,unsigned char month,unsigned char day)
{
unsigned week;
unsigned char moontab1[]={3,6,0,3,5,1,3,6,2,4,0,2},moontab2[]={4,0,0,3,5,1,3,6,2,4,0,2};
if((0==year/400)||(0==year/4&&0!=year/100))
week=((year/100)%4*5+year%100+(year%100)/4+moontab1[month-1]+day+2)%7;
else
week=((year/100)%4*5+year%100+(year%100)/4+moontab2[month-1]+day+2)%7;
return week;
}
//日歷
#include<lcd1.h>
void pagerili(bit x,unsigned char week,unsigned char monthday,unsigned char *rilisto)
{
unsigned char i;
if(x==0)
{
clrscreen();
write_com(0x81);
for(i=0;i<4;i++)
write_data(rilisto[i]+0x30);
hzkdis("年");
write_data(rilisto[4]+0x30);
write_data(rilisto[5]+0x30);
hzkdis("月");
write_com(0x90);
hzkdis("周一二三四五六天");
write_com(0x89);
for(i=1;i<=7-week+1;i++)
{
write_data(i/10+0x30);
write_data(i%10+0x30);
}
write_com(0x99);
for(i=9-week;i<16-week;i++)
{
write_data(i/10+0x30);
write_data(i%10+0x30);
}
}
else if(x==1)
{
clrscreen();
write_com(0x81);
for(i=16-week;i<23-week;i++)
{
write_data(i/10+0x30);
write_data(i%10+0x30);
}
write_com(0x91);
for(i=23-week;i<30-week;i++)
{
write_data(i/10+0x30);
write_data(i%10+0x30);
}
if(30-week<=monthday)
{
write_com(0x91);
if(37-week>monthday)
{
for(i=30-week;i<=monthday;i++)
{
write_data(i/10+0x30);
write_data(i%10+0x30);
}
}
else
{
for(i=30-week;i<37-week;i++)
{
write_data(i/10+0x30);
write_data(i%10+0x30);
}
write_com(0x99);
for(i=37-week;i<44-week;i++)
{
write_data(i/10+0x30);
write_data(i%10+0x30);
}
}
}
}
}
void rilidis(unsigned char *rilisto)
{
unsigned year;
unsigned char month,monthday;
unsigned char week;
bit y=0;
year=rilisto[0]*1000+rilisto[1]*100+rilisto[2]*10+rilisto[3];
month=rilisto[4]*10+rilisto[5];
if(month>12)
month=12;
week=getweek(year,month,1);
if(month==4||month==6||month==9||month==11)
monthday=30;
else if(month==2)
{
if(year%400==0||(year%4==0&&year%100!=0))
monthday=29;
else
monthday=28;
}
else monthday=31;
pagerili(y,week,monthday,rilisto);
while(1)
{
P3=0x7f;
if(P3_0==0)
{
delay(50);
if(P3_0==0)
{
y=~y;
pagerili(y,week,monthday,rilisto);
while(P3_0==0);
}
}
if(P3_3==0)
{
delay(50);
if(P3_3==0)
{
return;
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -