AcWing 1229. 日期问题
原题链接
简单
作者:
暂时换个名字
,
2021-01-31 17:02:44
,
所有人可见
,
阅读 349
import java.util.Scanner;
public class Main{//这道题同回文日期一模一样
static int begin=19600101,end=20591231;
static int a,b,c;
static String[] arr;
public static void main(String[] args) {
arr=new Scanner(System.in).nextLine().split("/");
a=Integer.parseInt(arr[0]);b=Integer.parseInt(arr[1]);c=Integer.parseInt(arr[2]);
f();
}
static void f() {
for(int i=begin;i<=end;i++) {
check(i);
}
}
static int[] days= {0,31,28,31,30,31,30,31,31,30,31,30,31};
static void check(int value) {
int y=value/10000,m=(value%10000)/100,d=value%100;
if(m>12||m==0||d==0)return;
if(m!=2&&d>days[m])return;
if (m == 2) {
boolean leap = (y % 4 == 0 )&&(y % 100!=0) ||(y % 400 == 0);
if(leap&&d>29)return;
if(!leap&&d>28)return;
}
int yy=y%100;
if(a==yy&&b==m&&c==d)System.out.println(y+"-"+arr[1]+"-"+arr[2]);
else if(a==m&&b==d&&c==yy)System.out.println(y+"-"+arr[0]+"-"+arr[1]);
else if(a==d&&b==m&&c==yy)System.out.println(y+"-"+arr[1]+"-"+arr[0]);
}
}