日历本
题目描述
我们经常需要使用日历,所以需要一个能生成日历的程序。 先要求你写一个程序,只需要输入年份,就能生成正确的日历。
输入
输入包含多组测试数据。每组输入一个整数Y(1800<=Y<=2100),表示公元年份。
输出
对于每组输入,输出对应的日立本。选中下面的输出样例查看具体的输出格式,注意空格的输出。
样例省略,代码求调:
#include<bits/stdc++.h>
using namespace std;
int n;
int a[13][6][8];
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check(int x){
if((x%4==0&&x%100!=0)||x%400==0)
return true;
return false;
}
int main(){
scanf("%d",&n);
bool flag=check(n);
int first=3;
for(int i=1800;i<=n;i++){
if(check(i))first+=2;
else first++;
if(first>7)first-=7;
}
first++;
// if(first==0)first=7;
// cout<<first<<endl;
if(flag)day[2]=29;
for(int i=1;i<=12;i++){
int con=1,fl=1;
for(int j=1;j<=6;j++){
for(int k=1;k<=7;k++){
if(j==1&&k<first)continue;
if(con>day[i]){
fl=0;
first=k;
break;
}
a[i][j][k]=con++;
// cout<<a[i][j][k]<<endl;
}
if(fl==0)break;
}
}
printf(" %d \n",n);
puts("");
puts(" January February March ");
puts("Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa");
for(int j=1;j<=6;j++){
for(int i=1;i<=3;i++){
for(int k=1;k<=7;k++){
if(a[i][j][k]){
if(a[i][j][k]/10==0)printf(" %d ",a[i][j][k]);
else printf("%d ",a[i][j][k]);
}
else printf(" ");
}
printf(" ");
}
puts("");
}
puts(" April May June ");
puts("Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa");
for(int j=1;j<=6;j++){
for(int i=4;i<=6;i++){
for(int k=1;k<=7;k++){
if(a[i][j][k]){
if(a[i][j][k]/10==0)printf(" %d ",a[i][j][k]);
else printf("%d ",a[i][j][k]);
}
else printf(" ");
}
printf(" ");
}
puts("");
}
puts(" July August September ");
puts("Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa");
for(int j=1;j<=6;j++){
for(int i=7;i<=9;i++){
for(int k=1;k<=7;k++){
if(a[i][j][k]){
if(a[i][j][k]/10==0)printf(" %d ",a[i][j][k]);
else printf("%d ",a[i][j][k]);
}
else printf(" ");
}
printf(" ");
}
puts("");
}
puts(" October November December ");
puts("Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa");
for(int j=1;j<=6;j++){
for(int i=10;i<=12;i++){
for(int k=1;k<=7;k++){
if(a[i][j][k]){
if(a[i][j][k]/10==0)printf(" %d ",a[i][j][k]);
else printf("%d ",a[i][j][k]);
}
else printf(" ");
}
printf(" ");
}
puts("");
}
return 0;
}