用C语言编程,要完整的源代码;谢谢!

C语言:电子万年历功能描述:已知2000年1月1日为星期六,请输入任一年的年份后(公历的平年是365天,闰年是366天),显示该年的年历;因为是C语言的作业,所以只能用C... C语言:电子万年历
功能描述:
已知2000年1月1日为星期六,请输入任一年的年份后(公历的平年是365天,闰年是366天),显示该年的年历;
因为是C语言的作业,所以只能用C语言做
展开
 我来答
百度网友02de466b1
推荐于2016-08-16
知道答主
回答量:42
采纳率:0%
帮助的人:26.7万
展开全部
/*万年历*/
#include<stdio.h>
#include<stdlib.h>

int isLeap(int year) //判断闰年
{
if(year%4!=0)
{
return 0;
}
else if(year%100!=0)
{
return 1;
}
else if(year%400!=0)
{
return 0;
}
else
{
return 1;
}
}

int GetMonthDays(int year,int month)//判断天数
{
switch(month){
case 1:case 3:case 5:case 7:case 8:case 10:case 12:return 31;break;
case 4:case 6:case 9:case 11:return 30;break;
case 2:if(isLeap(year)==1)
{
return 29;
}
else
{
return 28;
};break;
default:return 0;
}
}

int GetWeekDay(int year,int month,int day)//判断days天是星期几
{
int days;//总天数
int i=1;//计月份
int weekday;
days=(year-1)*365+(year-1)/4+(year-1)/400-(year-1)/100;
while(i<month)
{
days+=GetMonthDays(year,i);
i++;
}
days+=day;
weekday=days%7;
return weekday;
}

void PrintMonthCalender(int startDay,int days)//输出日历
{
int m=0;//计数空
int n=1;//计日期
while(m<startDay)
{
printf(" ");
m++;
}
while(n<=days)
{
printf("%d ",n);
if((n+m)%7==0)
{
printf("\n");
}
n++;
}
}

main()
{
int year,month,startDay,days;
printf("Please input year and month:");
scanf("%d %d",&year,&month);

startDay=GetWeekDay(year,month,1)%7;
days=GetMonthDays(year,month);//取得起始天和天数

printf("The result is:\n %d-%d\nSun. Mon. Tue. Wed. Thu. Fri. Sat.\n",year,month);
PrintMonthCalender(startDay,days);
system("pause");
return 0;
}

哇咔咔。。终于找到了,我们上个月的作业,哦哦呵呵。。。给我分吧
BadGanker
2010-12-24 · TA获得超过113个赞
知道小有建树答主
回答量:125
采纳率:100%
帮助的人:0
展开全部
#include <stdio.h> #include <stdlib.h> #include <conio.h> #define X " Sun Mon Tue Wed Thu Fri Sat" void menu() { system("cls"); printf("\nTHIS IS THE MENU OF THE PROGRAM !"); printf("\nYOU CAN CHOOSE THE NUMBER FOR THE FUNCTIOM:"); printf("\n\n"); printf("1 Find the day by year-month-date.\n"); printf("2 Find the year you input if the leap year.\n"); printf("3 Print the calendar of the year you input.\n"); printf("4 Exit.\n\n"); printf("Input your choice:"); } int getday(int year,int month,int date) { int flag,s,i; int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int cont=0; flag=isleap(year); if(flag==1) a[2]++; for(i=1;i<month;i++) { cont=cont+a[i]; } cont=cont+date; s=year+1+(year-1)/4+(year-1)/100+(year-1)/400+cont; return s%7; } int isleap(int year) { if(year%4==0&&year%100||year%400==0) return 1; else return 0; } void print(int n) { int i; for(i=0;i<n;i++) printf(" "); } int day(int year) { long a,b; if(year<=2000) { a=2000-year; b=6-(a+a/4-a/100+a/400)%7; return b; } else { a=year-2000; b=(a+1+(a-1)/4-(a-1)/100+(a-1)/400)%7+6; return b%7; } } void printcalendar(int year) { int i,j,k,m,n,f1,f2,d; int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; printf("\nThe calendar of the year %d.\n\n",year); d=day(year); if(isleap(year)==1) a[2]++; for(i=1;i<=12;i+=2) { m=0; n=0; f1=0; f2=0; switch(i) { case 1:printf(" Januray 1 ");break; case 3:printf(" March 3 ");break; case 5:printf(" May 5 ");break; case 7:printf(" July 7 "); break; case 9:printf(" September 9 ");break; case 11:printf(" Nevember 11 ");break; } print(21); switch(i+1) { case 2:printf(" February 2 "); break; case 4:printf(" April 4 "); break; case 6:printf(" June 6 "); break; case 8:printf(" August 8 "); break; case 10:printf(" October 10 "); break; case 12:printf(" December 12"); break; } printf("\n"); printf(X); print(6); printf(X); printf("\n"); for(j=0;j<6;j++) { if(j==0) { print(d*4); for(k=0;k<7-d;k++) { printf("%4d",++m); } print(6); d+=a[i]%7; d%=7; print(d*4); for(k=0;k<7-d;k++) { printf("%4d",++n); }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jzq740176597
2010-12-24 · TA获得超过301个赞
知道答主
回答量:168
采纳率:0%
帮助的人:191万
展开全部
这个用C语言太困难啦,用VC++ 的ActiveX技术,和容易实现。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aaqxna
2010-12-25 · TA获得超过1975个赞
知道小有建树答主
回答量:372
采纳率:100%
帮助的人:258万
展开全部
是不是在视频里面加上标题之类的文字的题目?如果是的话,用会声会影做不就行了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kkdhw17
2010-12-24 · TA获得超过217个赞
知道答主
回答量:303
采纳率:100%
帮助的人:195万
展开全部
是不是在视频里面加上标题之类的文字的题目?如果是的话,用会声会影做不就行了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式