问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用c语言编制一个万年历

发布网友 发布时间:2022-04-29 08:38

我来回答

2个回答

热心网友 时间:2022-06-24 23:34

大姐。。没有money的活儿。。

我可不干。

为了 一口气。。呵呵。。
模块化的思想

#include<stdio.h>
#include<windows.h>
#include<dos.h>

int days[]={0,31,59,90,120,151,181,212,243,273,304,334,365};
int month[]={31,28,31,30,31,30,31,31,30,31,30,31};
char weekday[7][7]={"一","二","三","四","五","六","七"};
int week(int y,int m,int d)
{
int day=0;
day=days[m-1]+d-1;
return (y-1+(y-1)/4-(y-1)/100+(y-1)/400+day)%7;
}
void print()
{
puts("*************************万年日历***************************");
puts("1.Week");
puts("2.Month");
puts("3.Calendar");
puts("4.Exit");
printf("您选择的是:");
}
void printmonth(int y,int m)
{
int i,j,w;
w=(week(y,m,1)+1)%7;
puts(" SUN MON TUE WED THU FRI SAT");
for(i=1;i<=w;i++)
printf("%5c",' ');
for(j=i;j<i+month[m-1]+(m==2&&(y%4==0&&(y%100)||y%400==0));j++)
{
printf("%5d",j-i+1);
if(j%7==0)
puts("");
}
if((j-1)%7)
puts("");
}
int printweek()
{
int y,m,d;
char temp[1];
system("cls");
puts("请输入年月日, 格式如:2012 12 25");
printf("年月日为:");
scanf("%d%d%d",&y,&m,&d);
printf("\n%4.4d年%2.2d月%2.2d日 是星期%s\n\n是否继续查询(Y/N)? ",y,m,d,weekday[week(y,m,d)]);

scanf("%s",temp);

while(1){
if(temp[0]=='N' || temp[0]=='n')
return 0;
else if(temp[0]=='y' || temp[0]=='Y')
printweek();
else
puts("输入错误!请输入n/y");
scanf("%s",temp);
}

return 0;
}

int printmonth2()
{
int y,m;
char temp[1];
system("cls");
puts("请输入要打印的年份/月份,格式如:2012 12");
printf("年月为: ");
scanf("%d%d",&y,&m);
printf(" %4.4d年%2.2d月\n",y,m);
printmonth(y,m);
printf("是否继续查询(Y/N)?");
scanf("%s",temp);
while(1){
if(temp[0] =='N' || temp[0] =='n')
return 0;
else if(temp[0]=='Y' || temp[0]=='y')
printmonth2();
else
puts("输入错误 !请输入y/n");
scanf("%s",temp);
}

return 0;

}

int printcalender()
{
int y,i;
char temp[1];
system("cls");
puts("请输入要打印的年份,格式如:2012");
printf("年份为: ");
scanf("%d",&y);
printf(" %4.4d\n",y);
for(i=1;i<=12;i++)
{
printf(" %2.2d月份\n",i);
printmonth(y,i);
}
printf("是否继续查询(Y/N)?");
scanf("%s",temp);
while(1)
{
if(temp[0]=='N' || temp[0]=='n')
return 0;
else if(temp[0]=='Y' || temp[0]=='y')
printcalender();
else
puts("输入错误!请输入y/n");
scanf("%s",temp);

}
return 0;

}

int exit1()
{
char temp[1];
system("cls");
printf("是否要真的退出(Y/N)? ");
scanf("%s",temp);
while(1){
if(temp[0]=='y' || temp[0]=='Y')
puts("bye_bye");
exit(0);
else if(temp[0]=='n' || temp[0]=='N')
return 0;
else
puts("输入错误!请输入y/n");
scanf("%s",temp);
}
return 0;
}

int main(void)
{
int temp;
print();
scanf("%d",&temp);
while(1)
{
if(temp==4)
exit1();
switch(temp)
{
case 1:
printweek();
break;
case 2:
printmonth2();
break;
case 3:
printcalender();
break;

default:
printf("请入输入正确的选项\n");
system("pause");
break;

}
system("cls");
print();
scanf("%d",&temp);

}
return 0;
}

热心网友 时间:2022-06-24 23:35

#include<stdio.h>
//#include<windows.h>
int days[]={0,31,59,90,120,151,181,212,243,273,304,334,365};
int month[]={31,28,31,30,31,30,31,31,30,31,30,31};
char weekday[7][7]={"一","二","三","四","五","六","七"};
int week(int y,int m,int d)
{
int day=0;
day=days[m-1]+d-1;
return (y-1+(y-1)/4-(y-1)/100+(y-1)/400+day)%7;
}
void print()
{
puts("1.Week");
puts("2.Month");
puts("3.Calendar");
puts("4.Exit");
}
void printmonth(int y,int m)
{
int i,j,w;
w=(week(y,m,1)+1)%7;
puts(" SUN MON TUE WED THU FRI SAT");
for(i=1;i<=w;i++)
printf("%5c",' ');
for(j=i;j<i+month[m-1]+(m==2&&(y%4==0&&(y%100)||y%400==0));j++)
{
printf("%5d",j-i+1);
if(j%7==0)
puts("");
}
if((j-1)%7)
puts("");
}
int main()
{
int i,y,m,d,c;
char op[1];
print();
while(scanf("%d",&c)==1)
{
if(c==1)
{
do
{
puts("请输入年月日(XXXX,XX,XX)");
scanf("%d%d%d",&y,&m,&d);
printf("%4.4d年%2.2d月%2.2d日是星期%s,是否继续查询(Y/N)?\n",y,m,d,weekday[week(y,m,d)]);
scanf("%s",op);
}while(op[0]=='Y');
print();
}
if(c==2)
{
do
{
puts("请输入要打印的月份(XXXX)");
scanf("%d%d",&y,&m);
printf(" %4.4d年%2.2d月\n",y,m);
printmonth(y,m);
puts("是否继续打印(Y/N)?");
scanf("%s",op);
}while(op[0]=='Y');
print();
}
if(c==3)
{
do
{
puts("请输入要打印的年份(XXXX)");
scanf("%d",&y);
printf(" %4.4d\n",y);
for(i=1;i<=12;i++)
{
printf(" %2.2d月\n",i);
printmonth(y,i);
}
puts("是否继续打印(Y/N)?");
scanf("%s",op);
}while(op[0]=='Y');
print();
}
if(c==4)
{
puts("是否要真的退出(Y/N)?");
scanf("%s",op);
if(op[0]=='Y')
return 0;
else print();
}
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...flash学得好、将来会有什么用、求哥哥、姐姐们、帮帮忙 我即将初中毕业,想要读技校,但又不知选那科好`哥哥姐姐们帮个忙吧! 成绩不好,高中毕业想学电脑,哪位哥哥姐姐知道帮忙推荐下学校_百度知 ... 大学计算机3级 怎样学习啊 难吗 哥哥姐姐 帮帮忙吧 ...就业怎样?我报了这个专业,请各位哥哥姐姐帮帮忙 请IT业工作的哥哥姐姐帮忙出出主意~~ ...师傅让他沿着水缸边行走练功。有谁知道这个电影叫什么? 小伙穿越拜"小龙女"为师,与小龙女合练武功是什么电影 ...电影开头是一个赤膊的男主角在练功,然后再和队友们去做任务,结果一... ...一秒竟然穿越了醒来第一句话就是疼死宝宝了是什么电视剧? 新款凯雷德可以选配4座吗 编写一个万年历的程序 编写一个万年历 用c语言设计一个简单的万年历怎么写代码 用c语言编写一个万年历的程序,2000-2016,输入其中一个年份可以得到一到十二月的日期,包括星 一个简单的万年历 一个万年历一个月用多少度电 一个万年历应该包含哪几个部分 w665属于不锈钢吗 669和667不锈钢。都叫201吗? 不锈钢667和669区别? 淹排骨怎么做好吃 腌过的排骨怎么做好吃啊 诺基亚N95 8G的怎样按装导航 中国百家姓中董姓辈分是怎么排的? 绥阳的白马市的路线导航 家常腌制排骨怎么做好吃? 天籁加个导航要多少钱(原配) 龙航的导航怎样 “董志塬”名称的由来是什么? 百万售价!八缸4.0T!国产SUV竟然还有这种狠角色? 万年历老是显示一个信息未读 拥有硬气外型大气磅礴气质的大车盘点! 用C或C++实现一个万年历程序主要功能屏幕上显示任意年月的月历按每行两个月的格式输出当年或指定的任意 ISO17025和GB27025的区别 陆地“轰炸机”凯迪拉克CTS两门版开了7年报价14万,网友:赚了! 通过ISO 17025需要什么的条件?费用为多少? 以日产Ariya为首的四款北京车展首发车 你想最快量产哪个? 「非正义」座驾与「里程焦虑」遐思 压轴出场亮点多,最后一个月还有这么多新车上市 凯迪拉克是国产车吗 求各大汽车品牌和类型 计划2022年交付 福特Bronco确认手动挡车型订单 塞纳真的要来了,GL8表示不慌 红旗E -HS9购车指南:自主首款大型纯电SUV怎么选? 越野车有哪些品牌 越野气车有哪几种品牌? 沃尔沃要出XC100? SUV汽车,200万预算,什么车最好,一定要综合性能最强的,速度越野舒适大气。 长沙车展2013下半年举办的时间是多久?