用C语言编程,要完整的源代码;谢谢!
C语言:电子万年历功能描述:已知2000年1月1日为星期六,请输入任一年的年份后(公历的平年是365天,闰年是366天),显示该年的年历;因为是C语言的作业,所以只能用C...
C语言:电子万年历
功能描述:
已知2000年1月1日为星期六,请输入任一年的年份后(公历的平年是365天,闰年是366天),显示该年的年历;
因为是C语言的作业,所以只能用C语言做 展开
功能描述:
已知2000年1月1日为星期六,请输入任一年的年份后(公历的平年是365天,闰年是366天),显示该年的年历;
因为是C语言的作业,所以只能用C语言做 展开
5个回答
展开全部
/*万年历*/
#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;
}
哇咔咔。。终于找到了,我们上个月的作业,哦哦呵呵。。。给我分吧
#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;
}
哇咔咔。。终于找到了,我们上个月的作业,哦哦呵呵。。。给我分吧
展开全部
#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); }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个用C语言太困难啦,用VC++ 的ActiveX技术,和容易实现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是在视频里面加上标题之类的文字的题目?如果是的话,用会声会影做不就行了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是在视频里面加上标题之类的文字的题目?如果是的话,用会声会影做不就行了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询