#include<stdioh>
void main()
{
int days,year,i,j,d;
scanf("%d",&year);
days=(year-1)365+((year-1)/4-(year-1)/100+(year-1)/400)+1;
d=days%7;
printf(" %d年日历\n",year);
printf(" 一月\n");
printf(" 日 一 二 三 四 五 六\n");
for(j=0;j<d;j++)
printf(" ");
for(i=1;i<=31;i++)
{
printf("%5d",i);
if((d+i)%7==0)
printf("\n");
}
}
3根据你输入的年份,结合闰年算法,计算输入年份的元旦离公元元年元旦有几天,并根据这个计算输入年份元旦是星期几
4计算输入年份是否闰年
5按月份,输出月历,12个就是年历了,或者说是这年的日历。
C语言程序如下:
#include<stdioh>
#define YES 1 / 定义符号常数“是” /
#define NO 0 / 定义符号常数“否” /
/ 函数 isleap(): 判断某年是否闰年 /
int isleap(int year)
{
int leap = NO;
if((year%4==0 && year%100!=0 )|| year%400==0)
leap = YES;
return leap;
}
/ 函数 week_of_newyears_day(): 求元旦是星期几 /
int week_of_newyears_day(int year)
{
int n = year-1900;
n = n+(n-1)/4+1;
n = n%7;
return n;
}
int main(int argc,char argv[])
{
int year, month, day, weekday, len_of_month, i;
printf("\n请输入某年年份: ");
scanf("%d",&year);
printf("\n请输入某年1月1日:");
scanf("%d",&weekday);
/因为你的要求是已知2000年1月1日是星期六,所以这里不用week_of_newyears_day去求星期六了/
/weekday = week_of_newyears_day(year); 求元旦是星期几 /
printf("\n\n\n %d年\n",year); / 打印年份 /
for(month=1; month<=12;month=month+1) / 打印12个月的月历 /
{
printf("\n%d月份\n",month);
printf("------------------------------------------------------\n");
printf("星期日 星期一 星期二 星期三 星期四 星期五 星期六\n");
printf("------------------------------------------------------\n");
for(i=0;i<weekday;i=i+1) / 找当月1日的打印位置 /
printf(" ");
if(month==4 || month== 6 || month==9 || month==11)
len_of_month = 30;
else if(month==2)
{
if(isleap(year))
len_of_month = 29;
else
len_of_month = 28;
}
else
len_of_month = 31;
for(day=1;day<=len_of_month;day=day+1)/ 打印当月日期 /
{
printf(" %2d ",day);
weekday = weekday+1;
if(weekday==7) / 打满一星期应换行 /
{
weekday = 0;
printf("\n");
}
}
printf("\n"); / 打完一月应换行 /
}
return 0;
}
运行效果如图
以上就是关于.编程序实现如下功能:输入任意一个年份的值,按以下格式输出该年份一月份的公历日历。 要求用循环控制打全部的内容,包括:.编程序实现如下功能:输入任意一个年份的值,按以下格式输出该年份一月份的公历日历。 要求用循环控制打、编写一个程序,实现输入一个年份,输出这年的日历!! 求思路,越具体越好!!、C语言程序设计;"已知2000年1月1日为星期六,请输入任一年的年份后,打印该年的年历" 怎么设计啊,速求老师等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)