搜索
查看: 180|回复: 0
打印 上一主题 下一主题

对不齐,日期跟周几对不齐,,,,,咋弄

[复制链接]
跳转到指定楼层
楼主
 楼主| 发表于 2019-5-6 19:45:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
10啊哈币
  1. #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]
  2. int fdyear (int a)
  3. {
  4. if(a%400==0||a%100!=0&&a%4==0) //判断是不是闰年
  5. return(a-1+a/4-a/100+a/400)%7;//闰年元旦计算
  6. else
  7. return(a+a/4-a/100+a/400)%7;//平年元旦计算
  8. }
  9. int main()
  10. {
  11. int n,i,y,fdmonth[12];
  12. printf ("****************欢迎****************");
  13. printf("");
  14. printf("请输入年份:");
  15. scanf("%d",&y);
  16. if(y<1)
  17. printf("输入的是错误的年份。");
  18. else
  19. {
  20. n=(y%400==0||y%100!=0&&y%4==0);
  21. char
  22. *month[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
  23. char week[]="日 一 二 三 四 五 六";
  24. printf("");
  25. int
  26. daysmonth[12]={31,28+n,31,30,31,30,31,31,30,31,30,31,};//输入年份每个月的总天数
  27. printf("                            %d年的日历 ",y);
  28. for(i=0;i<12;i++)//计算每个月的第一天
  29. {
  30. static int day=0;
  31. fdmonth[i]=(day+fdyear(y))%7;
  32. day=day+daysmonth[i];
  33. }
  34. for(i=0;i<12;i+=3)//每三个月并排打印
  35. {
  36. printf("           %s                    %s                  %s",month[i],month[i+1],month[i+2]);
  37. char s[]=" ";
  38. printf("%-3s %s %-3s %s %-3s %s",s,week,s,week,s,week);
  39. for(int j=0;j<6;j++)//每个月最多占行
  40. {
  41. for(int d=i;d<i+3;d++)//三个月并排打印每一行
  42. {
  43. printf(" ");
  44. for(int n=0;n<7;n++)//每一行有日
  45. {
  46. int k=1-fdmonth[d]+n+7*j;
  47. if(k<1||k>daysmonth[d])
  48. printf(" ");
  49. else
  50. printf("%-3d",k);//计算日期输入
  51. }
  52. }
  53. printf("");
  54. }
  55. printf("");
  56. }
  57. }
  58. }
复制代码

捕获2.PNG (7.75 KB, 下载次数: 11)

捕获2.PNG
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表