遍历访问2000年~2099年的日历
/*预处理部分*/
# include
/*结构定义部分*/
typedef struct { //定义月结构
int yuesize; //当月中所包含的天数
int xvshu; //当月第一天相对于标准日的天序数
}Month; //Mouth为月结构类型名
typedef struct { //定义年结构
Month M[12]; //月结构数组用于存放当年的月信息
int yearsize; //当年所含的天数
}Year; //Year为年结构类型名
/*函数名称部分*/
void CreateYear (Year &S1,Year &S2,int x); //创建2000年后100年的日历信息 void Print (int x,int y,int z,int g); //由x值输出相应的星期 int PrintDay (Year S,int x,int y,int z); //日访问函数
int PrintMonth (Year S,int x,int y); //月访问函数
int PrintYear (Year S,int x); //年访问函数
void main (); //主函数
/*函数部分*/
void CreateYear (Year &S1,Year &S2,int x) { //创建2000年后100年的日历信息
int k;
if (x%4!=0) S1.yearsize=365;
else if ((x%100==0)&&(x%400!=0)) S1.yearsize=365;
else S1.yearsize=366;
for (k=0;k<=11;k++) {
if (k==1) {
if (S1.yearsize==365) S1.M[k].yuesize=28;
else S1.M[k].yuesize=29;
S1.M[k].xvshu=S1.M[k-1].xvshu+S1.M[k-1].yuesize;
}
else if ((k==0)||(k==2)||(k==4)||(k==6)||(k==7)||(k==9)||(k==11)) {
S1.M[k].yuesize=31;
if (k==0) {
if (x==2000) S1.M[k].xvshu=1;
else S1.M[k].xvshu=S2.M[11].xvshu+S2.M[11].yuesize;
}
else S1.M[k].xvshu=S1.M[k-1].xvshu+S1.M[k-1].yuesize;
}
else {
S1.M[k].yuesize=30;
S1.M[k].xvshu=S1.M[k-1].xvshu+S1.M[k-1].yuesize;
}
}
} //end CreateYear
void Print (int x,int y,int z,int g) { //由x值输出相应的星期
if (g%7==1) printf ("%d年%d月%d日是星期六\n",x,y,z);
else if (g%7==2) printf ("%d年%d月%d日是星期天\n",x,y,z);
else if (g%7==3) printf ("%d年%d月%d日是星期一\n",x,y,z);
else if (g%7==4) printf ("%d年%d月%d日是星期二\n",x,y,z);
else if (g%7==5) printf ("%d年%d月%d日是星期三\n",x,y,z);
else if (g%7==6) printf ("%d年%d月%d日是星期四\n",x,y,z);
else printf ("%d年%d月%d日是星期五\n",x,y,z); } //end Print
int PrintDay (Year S,int x,int y,int z) { //日访问函数
int k;
if ((y<1)||(y>13)) {
printf ("月号输入错误\n");return 0;
}
else if ((z<0)||(S.M[y-1].yuesize=2000)&&(y<2100)) {
PrintYear (Y[y-1999],y);
printf ("年历访问完毕\n");
}
else printf ("年号输入错误\n");
break;
case 2:
printf ("请输入要访问的年、月号:");
scanf ("%d%d",&y,&m);
if ((y>=2000)&&(y<2100)) {
if ((m<1)||(m>12)) printf ("月号输入错误\n");
else {
printf (" %d年%d月\n",y,m); //为使输出整齐,要输
入一些空格
PrintMonth (Y[y-1999],y,m);
printf ("月历访问完毕\n");
}
}
else printf ("年号输入错误\n");
break;
case 3:
printf ("请输入要访问的年、月、日号:");
scanf ("%d%d%d",&y,&m,&r);
if ((y>=2000)&&(y<2100)) {
PrintDay (Y[y-1999],y,m,r);
printf ("日历访问完毕\n");
}
else printf ("年号输入错误\n");
break;
default:
printf ("选择错误\n");
break;
} //end switch
printf ("\n");
printf ("请选择访问方式:");
scanf ("%d",&menu);
} //end while
printf ("操作结束\n");
} //end main
本文档为【遍历访问2000年~2099年的日历】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。