啊哈磊_编程从这里起步
标题:
对不齐,日期跟周几对不齐,,,,,咋弄
[打印本页]
作者:
gumeng
时间:
2019-5-6 19:45
标题:
对不齐,日期跟周几对不齐,,,,,咋弄
#include<stdio.h>[img=110,0]https://bbs.codeaha.com/forum.php?mod=image&aid=6472&size=300x300&key=3b420b0df125b3f5&nocache=yes&type=fixnone[/img]
int fdyear (int a)
{
if(a%400==0||a%100!=0&&a%4==0) //判断是不是闰年
return(a-1+a/4-a/100+a/400)%7;//闰年元旦计算
else
return(a+a/4-a/100+a/400)%7;//平年元旦计算
}
int main()
{
int n,i,y,fdmonth[12];
printf ("****************欢迎****************");
printf("");
printf("请输入年份:");
scanf("%d",&y);
if(y<1)
printf("输入的是错误的年份。");
else
{
n=(y%400==0||y%100!=0&&y%4==0);
char
*month[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
char week[]="日 一 二 三 四 五 六";
printf("");
int
daysmonth[12]={31,28+n,31,30,31,30,31,31,30,31,30,31,};//输入年份每个月的总天数
printf(" %d年的日历 ",y);
for(i=0;i<12;i++)//计算每个月的第一天
{
static int day=0;
fdmonth[i]=(day+fdyear(y))%7;
day=day+daysmonth[i];
}
for(i=0;i<12;i+=3)//每三个月并排打印
{
printf(" %s %s %s",month[i],month[i+1],month[i+2]);
char s[]=" ";
printf("%-3s %s %-3s %s %-3s %s",s,week,s,week,s,week);
for(int j=0;j<6;j++)//每个月最多占行
{
for(int d=i;d<i+3;d++)//三个月并排打印每一行
{
printf(" ");
for(int n=0;n<7;n++)//每一行有日
{
int k=1-fdmonth[d]+n+7*j;
if(k<1||k>daysmonth[d])
printf(" ");
else
printf("%-3d",k);//计算日期输入
}
}
printf("");
}
printf("");
}
}
}
复制代码
捕获2.PNG
(7.75 KB, 下载次数: 11)
下载附件
保存到相册
2019-5-6 19:44 上传
欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/)
Powered by Discuz! X3.2