c语言编写万年历

给个详细点程序谢谢本人是初学者... 给个详细点程序 谢谢 本人是初学者 展开
 我来答
匿名用户
2013-07-30
展开全部
#include"stdio.h"
#include"stdlib.h"
#include"windows.h"
void welcome();
void getday(int year,int month);
void shuru();
void end();
long year;
long month;
void welcome()
{
printf("【万年历程序加载中");
for(int i=0;i<30;i++)
{
printf("★");
Sleep(100);
}
system("cls");
printf("【万年历程序加载中】\n");
Sleep(1000);
printf("☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆\n");
Sleep(1000);
printf(" ~~~谢谢使用【菠菜】制作的万年历~~~~\n");
Sleep(100);
printf("☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆\n");
Sleep(1000);
}
void end()
{
printf("【万年历关闭中");
for(int i=0;i<30;i++)
{
printf("★");
Sleep(100);
}
system("cls");
printf("【万年历关闭完成】\n");
Sleep(1000);
printf("☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆\n");
Sleep(1000);
printf(" ~~~谢谢使用【菠菜】制作的万年历~~~~\n");
Sleep(100);
printf("☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆\n");
Sleep(1000);
exit(0);
}
void shuru()
{
int a;
printf("☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆\n");
printf(" ≮欢迎使用万年历≯\n");
printf("☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆\n");
while(1)
{
printf("请输入年份:");
scanf("%d",&year);
if(year>0)
break;
else
{
printf("\n");
printf("你输入的年份有误,请重新输入\n"); } }
printf("\n");
while(1)
{
printf("请输入月份:");
scanf("%d",&month);
if(month>=1&&month<=12)
break;
else
{
printf("\n");
printf("你输入的月份有误,请重新输入\n"); } }
getday(year,month);
}
void getday(int year,int month)
{
int week; //星期几
int nowday=0; //该月前的总天数
long allday; //从公元1年起的总天数
int dayofmonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(year%4==0&&year%100!=0||year%400==0)
dayofmonth[2]=29;
for(int m=0;m<month;m++)
{
nowday=nowday+dayofmonth[m];
}
allday=nowday+year*365+year/4-year/100+year/400; //公元一年到现在用了多少天
week=allday%7; //求出这个月第一天是星期几
printf(" %d 年 %d 月\n",year,month);
printf("日 一 二 三 四 五 六\n");
for(int j=0;j<week;j++)
{
printf(" ");
}
for(int i=1;i<=dayofmonth[month];i++)
{
if(week==7)
{
printf("\n");
week=0; }
printf("%2d ",i);
week++; }
printf("\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
}
void main()
{
char a;
welcome();
while(1)
{
shuru();
printf("你还需要继续吗?<y ro n>");
fflush(stdin); //清空输入缓冲区,避免缓冲区内残存读取函数无法取走的内容!
scanf("%c",&a);
if(a=='n')
break;
}
end();
}
这个万年历比较好看哈!你可以试试这个?
匿名用户
推荐于2017-11-25
展开全部
#include <stdio.h>
#define N 7void print(int day,int tian)
{
int a[N][N],i,j,sum=1;
for(i=0,j=0;j<7;j++)
{
if(j<day)
printf(" ");
else
{
a[i][j]=sum;
printf("%3d ",sum++);
}
}
printf("\n");
for(i=1;sum<=tian;i++)
{
for(j=0;sum<=tian&&j<7;j++)
{
a[i][j]=sum;
printf("%3d ",sum++);
}
printf("\n");
}

}int duo(int year)
{
if(year%4==0&&year%100!=0||year%400==0)
return 1;
else
return 0;
}
int rili(int year,int month)
{
int day,tian,preday,strday;
//printf("\n");

printf("%d月 %d年\n",month,year);
printf("Sun Mon Tue Wed Thu Fri Sat\n");
switch(month)
{
case 1:
tian=31;
preday=0;
break;
case 2:
tian=28;
preday=31;
break;
case 3:
tian=31;
preday=59;
break;
case 4:
tian=30;
preday=90;
break;
case 5:
tian=31;
preday=120;
break;
case 6:
tian=30;
preday=151;
break;
case 7:
tian=31;
preday=181;
break;
case 8:
tian=31;
preday=212;
break;
case 9:
tian=30;
preday=243;
break;
case 10:
tian=31;
preday=273;
break;
case 11:
tian=30;
preday=304;
break;
default:
tian=31;
preday=334;
}
if(duo(year)&&month>2)
preday++;

if(duo(year)&&month==2)
tian=29;
day=((year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+preday+1)%7; print(day,tian);

}int main()
{
int year,month,con=1;
while(con)
{
printf("请输入你想打印的年份:");
scanf("%d",&year);
while(1)
{
printf("请输入你想打印的月份:");
scanf("%d",&month);
if(month>12||month<1)
printf("请输入正确的月份!!");
else
break;
}

rili(year,month); printf("是否继续 1或者0");
scanf("%d",&con);
}
getch();
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者xxYEEkqJGM
2020-06-17 · TA获得超过3821个赞
知道小有建树答主
回答量:3119
采纳率:25%
帮助的人:161万
展开全部
推荐你仔细看看网络上万年历的代码.基本上都是JSP的.
与C相差无几.
弄这个,关键是有耐心,把所有节气/节日定义好,并且是更好地定义实现.
网上有这样的代码的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式