c语言计算机程序万年历论文,C语言万年历编程源程序

119e627e6be1d391dd0d54dfbd29ed22.png

#include

void shileapyear(); //确定是否为a年函数

void CaculateWeekDay(); //判断是星期几的函数

void Calendarmonth(); //用于打印一年和一个月的日历的功能

void Calendaryear(); //打印特定年份日历的功能

int leap年(int year); //判断the年

int caculateWeekDay(int year,int month,int day); //某年中某星期几的判断

void Calendar(int year,int month); //打印一年零一个月的日历

int main()//菜单主界面

{

int choice,i; // choice是选择代码

for(i = 1; i <= 4; i ++){

printf(“ 1-今年是否是leap年\ n”);

printf(“ 2-今天是星期几\ n”);

printf(“ 3-今年的日历\ n”);

printf(“ 4-一年中该月的日历\ n”);

printf(“ 0 -Exit \ n”);

printf(“请选择选项: ”); //提示用户输入选项

scanf(“%d”,&choice);

if(choice == 0)// 0直接退出程序

休息;

切换(选择){

案例1: shileapyear(); //这是a年吗?

休息;

情况2: CaculateWeekDay(); //周历

休息;

情况3: Calendaryear(); //年日历

休息;

案例4: Calendarmonth(); //每月日历

休息;

fd1daa8498bef66c113aa3d04a173695.png

}

中断; //仅让程序判断一次

}

返回0;

}

void shileapyear()//确定是否为a年函数

{

int年,跨越;

printf(“请输入年份: ”); //提示用户输入年份

scanf(“%d”,&year);

leap = leapyear(year); //调用函数

if(leap == 0)//如果是a年,则获取返回值0

printf(“%d年是leap年\ n”,year);

else //如果不是a年,则返回值1

printf(“年份%d不是leap年\ n”,年);

}

void CaculateWeekDay()//判断是星期几的功能

{

int年,月,日,iWeek;

printf(“请输入日期: ”); //提示用户输入年,月和日

scanf(“%d-%d-%d”,&year,&month,&day);

如果(month> 12 || day> 31)

printf(“此日期已破\ n”);

else iWeek = caculateWeekDay(year,month,day); //通话功能

switch(iWeek)// iWeek获取返回值

{

情况0: printf(“今天%d-d-d是星期一\ n”万年历程序,年,月,日);休息;

情况1: printf(“今天%d-d-d是星期二\ n”,年,月,日);休息;

情况2: printf(“今天%d-d-d是星期三\ n”,年,月,日);休息;

情况3: printf(“今天%d-d-d是星期四\ n”,年,月,日);休息;

b686c4c667e9c08d6d404447f6c564bb.png

情况4: printf(“今天%d-d-d是星期五\ n”,年,月,日);休息;

情况5: printf(“今天%d-d-d是星期六\ n”万年历程序,年,月,日);休息;

情况6: printf(“今天%d-d-d是星期日\ n”,年,月,日);休息;

}

}

void Calendaryear()//用于打印特定年份日历的功能

{

int年,月;

printf(“请输入日期: ”); //提示用户输入年份

scanf(“%d”,&year);

for(month = 1; month <= 12; month ++){//将月份定义为1,然后循环,总共打印12个月

日历(年,月); //通话功能

}

}

void Calendarmonth()//函数用于打印年份和月份的日历

{

int年,月;

printf(“请输入日期: ”); //提示用户输入年份和月份

scanf(“%d-%d”,&year,&month);

如果(月> 12)

printf(“这个月累了\ n”);

else Calendar(year,month); //调用函数以打印输入月份的日历

}

int jumpyear(int year)//判断所经过的年份是否为a年///

{

if((year%4 == 0)&&(year0!= 0)||(year%400 == 0)){

返回0; //它是the年返回值0

}否则返回1; //不是a年返回值1

}

int caculateWeekDay(int year,int month,int day)//传入日的日期/月份/天的判断为///

44affd4d0e6278ba293539f6f51fef56.png

{

int iWeek; // Kim Larson W的计算公式=(d + 2 * m + 3 *(m + 1)/ 5 + y + y / 4-y / 100 + y / 400)%7 <

if(month == 1 || month == 2){// 1月份和2月被视为上一年的13和14

month + = 12;

year-;

}

返回iWeek =(day + 2 * month + 3 *(month + 1)/ 5 + year + year / 4-year / 100 + year / 400)%7;

}

无效的日历(年,月)//打印特定的年月日历

{

int jump,first,h,sum;

int标签[2] [13] = {

{0,31,29,31,30,31,30,31,31,30,31,30,31},// a年的天数

{0,31,28,31,30,31,30,31,31,30,31,30,31} //正常年份每月的天数

};

printf(“日历%d \ n”,年);

if(month == 1)//将阿拉伯数字转换为英语输出

printf(“一月”);

否则if(month == 2)

printf(“二月”);

否则if(month == 3)

printf(“三月”);

否则if(month == 4)

printf(“四月”);

否则if(month == 5)

printf(“五月”);

否则if(month == 6)

printf(“ June”);

否则if(month == 7)

printf(“ July”);

file0001.png

否则if(month == 8)

printf(“ August”);

否则if(month == 9)

printf(“九月”);

否则if(month == 10)

printf(“十月”);

否则if(month == 11)

printf(“十一月”);

其他

printf(“ 12月”);

printf(“ \ n -d- \ n”,month); //输出2位数字,不足以填充0

printf(“ SUN MON TUE WED THU FRI SAT \ n”); //第1天2 3 4 5 6 7

leap = leapyear(year); //调用函数

sum = tab [leap] [month]; //一年中一个月的总天数

first = caculateWeekDay(year,month,1); //调用该函数以确定该月的第一天中的某天

if(first <= 5){//因为首先获取CaculateWeekDay函数的返回值,所以5表示星期六,当大于5表示星期日时,不需要空格

for(h = 0; h printf(“”);

}

int i = 1; //从第一个开始

first + = 1; //让first对应于星期几,以方便进行以下操作

while(i <= sum){//从第一个月初到月底

printf(“%4d”,i);

first =(first + 1)%7; //换行

if(first%7 == 0)

printf(“ \ n”);

i ++;

}

printf(“ \ n”);

printf(“ **************************** \ n”);

}

6fe986cf9d59296a4e32d2404e8d8bb4.png

1440586f76f2e78fbf471168e753c4bd.png

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/ruanjian/article-270329-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值