2024-3-4-1229-日期问题.cpp

2024-3-4-1229-日期问题.cpp

2024-3-4-1229-日期问题.cpp

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;
int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check_vaild(int year,int month,int day){
    if(month==0||month>12)return false;
    if(month!=2){
        if(day==0||day>days[month])return false;}

    if(month==2)
    {
        int leap=year%4==0&&year%100||year%400==0;
        if(day==0||day>28+leap)return false;
    }
    return true;
}
int main()
{       int a,b,c;
    scanf("%d/%d/%d", &a,&b,&c);
    for(int date=19600101;date<20591231;date++){
        int year=date/10000,month=date%10000/100,day=date%100;
        if(check_vaild(year,month,day))
        {
            if(year%100==a&&month==b&&day==c||//年月日表示
            year%100==c&&month==a&&day==b||//月日年表示
            year%100==c&&month==b&&day==a//日月年表示
            )
            printf("%d-%02d-%02d\n",year,month,day);//02表示不足2位补0
        }
    }

        return 0;
}