百练+打印月历+日期的计算和格式化输出方式,细节注意处理额

    xiaoxiao2026-09-25  11

    点击打开链接 #include<stdio.h> #include<stdlib.h> #include<iostream> #include<string.h> #include<cstring> #include<string> #include<algorithm> #include<math.h> #include<queue> #include<set> #include<stack> #include<string> #include<map> #define LL long long #define inf 0x3f3f3f3f #define mod 1e9+7 using namespace std; int day1[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}}; int sum=0; void solve(int y) { if((y%400==0)||(y%4==0&&y%100!=0)){ sum+=366; } else sum+=365; } void solve1(int y,int m) { if((y%400==0)||(y%4==0&&y%100!=0)){ for(int i=0;i<(m-1);i++){ sum+=day1[1][i]; } } else{ for(int i=0;i<(m-1);i++){ sum+=day1[0][i]; } } } int main() { int i=0,year=0,month=0,f=0,x=0; scanf("%d %d",&year,&month); for(i=1900;i<year;i++){ solve(i); } solve1(year,month); sum=(sum+1)%7; printf("Sun Mon Tue Wed Thu Fri Sat\n"); for(i=1;i<=sum;i++){ printf(" "); f++; } if((year%400==0)||(year%4==0&&year%100!=0)){ x=1; } else{ x=0; } for(i=1;i<=day1[x][month-1];i++){ printf("%3d ",i); f++; if(f==7){ printf("\n"); f=0; } } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-1312307.html
    最新回复(0)