输出万年历
您可以按左右箭头键翻到上个月或下个月。
您可以按上下箭头键翻到上一年或下一年。
# include & ltstdio.h & gt
# include & ltconio.h & gt
# include & ltstdlib.h & gt
# include & lttime.h & gt
闰年(跨年度)
{
if((year % 4 = = 0)& amp;& amp(年份% 100!= 0)
||(年份% 400 == 0))
{
返回1;
}
返回0;
}
无效显示(跨年、跨月)
{
const char month _ str【】【4】= {““、“Jan“、“Feb“、“Mar“、“Apl“、
“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”};
const int month _ day【】= { 0,31,28,31,30,31,30,31,30,31,30,31 };
int i,j,wdays,mdays,days
for(I = 1,天数= 0;我& lt年份;i++)
{
if(飞跃(I))
{
天数+= 366;
}
其他
{
天数+= 365;
}
}
for(I = 1;我& lt月份;i++)
{
if(I = = 2 & amp;& amp闰年)
{
天数+= 29;
}
其他
{
days+= month _ day【I】;
}
}
printf(“% s(% d)\ n“,month_str【月】,年);
printf(“星期一星期二星期三星期四Fri星期六\ n“);
wdays = days % 7;
for(j = 0;j & ltwdaysj++)
{
printf(“”);
}
if(month = = 2 & amp;& amp闰年)
{
mdays = 29
}
其他
{
mdays = month _ day【month】;
}
for(I = 1;我& lt= mdaysi++)
{
if(I & gt;1 & amp;& amp天数% 7 == 0)
{
printf(“\ n“);
}
printf(“% 4d“,I);
天数=天数+1;
}
printf(“\ n-\ n“);
}
主()
{
time _ t rawtime
struct tm * info
int年,月;
char ch
时间(ampraw time);
info = local time(amp;raw time);
year = info-& gt;TM _ year+1900;
month = info-& gt;TM _ mon+1;
while(1)
{
显示(年、月);
printf(“Left....上个月\ n“);
printf(“右...下个月\ n“);
printf(“向上......上一年\ n“);
printf(“向下....明年\ n“);
printf(“Esc.....exit \ n“);
ch = getch();
开关(通道)
{
案例27://Ecs
退出(0);
案例32://Navigator
ch = getch();
if(ch = = 77)
{//右
年+=(月==12)?1:0;
月=月% 12+1;
}
else if(ch = = 75)
{//左侧
年-=(月==1)?1:0;
month =(month-2+12)% 12+1;
}
else if(ch = = 72)
{//向上
年份-;
}
else if(ch = = 80)
{//向下
年份++;
}
系统(“cls”);
}
}
}