c语言万年历Word格式文档下载.docx

上传人:b****6 文档编号:19727160 上传时间:2023-01-09 格式:DOCX 页数:11 大小:15.91KB
下载 相关 举报
c语言万年历Word格式文档下载.docx_第1页
第1页 / 共11页
c语言万年历Word格式文档下载.docx_第2页
第2页 / 共11页
c语言万年历Word格式文档下载.docx_第3页
第3页 / 共11页
c语言万年历Word格式文档下载.docx_第4页
第4页 / 共11页
c语言万年历Word格式文档下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

c语言万年历Word格式文档下载.docx

《c语言万年历Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言万年历Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。

c语言万年历Word格式文档下载.docx

“请输入要打印的年份(XXXX)”

运行后输出XXXX年的日历,

XXXX

X(月数)

xx

SMTWTFS

XXXXX

XXXXX

运行完成后显示:

“是否继续打印(Y/N)?

如果输入Y,则重新显示“请输入要打印的年份(XXXX)”,否则回到主菜单。

(4)在主菜单中输入4后,显示:

“是否要真的退出(Y/N)?

如果输入Y,结束程序运行,否则重新显示主菜单。

#include<

stdio.h>

stdlib.h>

typedefstruct{

intyear;

charmonth;

charday;

}*DATE;

DATENewDate(void);

intDestroyDate(DATEdate);

intDaysAMonth(DATEdate);

intCheckDate(DATEdate);

intSetDate(DATEdate,intyear,intmonth,intday);

intGetWeek(DATEdate);

intQueryDay(void);

intShowMonth(DATEdate);

intQueryMonth(void);

intQueryYear(void);

intConfirmExit(void);

intCalendar(void);

intmain()

{

if(Calendar())

return0;

else

return1;

}

DATENewDate(void)

DATEdate;

date=(DATE)malloc(sizeof(*date));

returndate;

intDestroyDate(DATEdate)

if(!

date)

free(date);

intDaysAMonth(DATEdate)

intdays;

switch(date->

month)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12:

days=31;

break;

case4:

case6:

case9:

case11:

days=30;

default:

days=0;

}

if(date->

month==2)

year%4==0&

&

date->

year%400!

=0||date->

year%400==0)

days=29;

days=28;

returndays;

intCheckDate(DATEdate)

month<

1||date->

month>

12)

day<

day>

DaysAMonth(date))

intSetDate(DATEdate,intyear,intmonth,intday)

year=year;

month=month;

day=day;

returnCheckDate(date);

intGetWeek(DATEdate)

intyear,month,day;

year=date->

year;

month=date->

month;

day=date->

day;

if(month<

=2)

month+=12;

--year;

return(day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7+1;

intQueryDay(void)

charcont;

staticchar*week[]={"

星期一"

"

星期二"

星期三"

星期四"

星期五"

星期六"

星期日"

};

(date=NewDate()))

do{

printf("

请输入年月日(XXXX,XX,XX)"

);

scanf("

%d,%d,%d"

&

year,&

month,&

day);

if(SetDate(date,year,month,day))

%4d年%2d月%2d日是%s,是否继续查询(Y/N)?

"

\

year,month,day,week[GetWeek(date)-1]);

%c"

cont);

日期输入错误!

\n"

}while(cont=='

Y'

||cont=='

y'

DestroyDate(date);

intShowMonth(DATEdate)

intstartweek;

inti;

startweek=GetWeek(date);

days=DaysAMonth(date);

SMTWSFS\n"

startweek=startweek%7;

for(i=0;

i<

startweek;

++i)

"

for(i=1;

=days;

%2d"

i);

startweek=(startweek+1)%7;

if(startweek==0)

if(startweek!

=0)

intQueryMonth(void)

intyear,month;

请输入要打印的月份(XXXX,XX)"

%d,%d"

month);

if(SetDate(date,year,month,1))

%4d年%2d月\n"

year,month);

ShowMonth(date);

月份输入错误!

intQueryYear(void)

intmonth;

请输入要打印的年份(XXXX)"

%d"

year);

%4d年\n"

year);

for(month=1;

=12;

++month)

SetDate(date,year,month,1);

%2d月\n"

month);

是否继续打印(Y/N)?

intConfirmExit(void)

charexit;

是否要真的退出(Y/N)?

exit);

if(exit=='

||exit=='

 

intCalendar(void)

intmenu=1;

inttmp;

switch(menu)

\n|1查星期||2月日历||3年日历||4退出|:

tmp);

switch(tmp)

menu=11;

case2:

menu=12;

menu=13;

menu=14;

选择有误!

QueryDay();

menu=1;

QueryMonth();

case13:

QueryYear();

case14:

if(ConfirmExit())

menu=0;

}while(menu);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1