华为云专业网站定制,大专学历怎么自考,沈阳建网站公司,php网站整合dz论坛题目描述
小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在 1960 年 1 月 1 日至 2059 年 12 月 31 日。令小明头疼的是#xff0c;这些日期采用的格式非常不统一#xff0c;有采用年/月/日的#xff0c;有采用月/日/年的#xff0c;还有采…题目描述
小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在 1960 年 1 月 1 日至 2059 年 12 月 31 日。令小明头疼的是这些日期采用的格式非常不统一有采用年/月/日的有采用月/日/年的还有采用日/月/年的。
更加麻烦的是年份也都省略了前两位使得文献上的一个日期存在很多可能的日期与其对应。
比如 02/03/04可能是 2002 年 03 月 04 日、2004 年 02 月 03 日或 2004 年 03 月 02 日。
给出一个文献上的日期你能帮助小明判断有哪些可能的日期对其对应吗
输入描述 一个日期格式是 AA/BB/CC ( 0≤A,B,C≤9)。
输出描述 输出若干个不相同的日期每个日期一行格式是 yyyy−MM−dd。多个日期按从早到晚排列。
输入输出样例
示例 输入 02/03/04 输出 2002-03-04 2004-02-03 2004-03-02 运行限制 import java.util.Scanner;public class Main {static int[] days{0,31,28,31,30,31,30,31,31,30,31,30,31};public static void main(String[] args) {Scanner scannew Scanner(System.in);String strscan.next();String[] sstr.split(/);int a1Integer.parseInt(s[0]);int a2Integer.parseInt(s[1]);int a3Integer.parseInt(s[2]);for(int i19600101;i20591231;i){int yeari/10000;int monthi/100%100;int dayi%100;if(check(year,month,day)){if((year%100a1montha2daya3)||(year%100a3montha1daya2)||(year%100a3montha2daya1)){System.out.printf(%02d-%02d-%02d\n,year,month,day);}}}}public static boolean check(int year,int month,int day){int t;if(month!2) {if (month 12 || month 0 || day 0 || day 31 || day days[month]) {return false;}}if(month2) {if (year % 400 0 || (year % 4 0 year % 100 ! 0)) {t1;}else{t0;}if(daydays[month]t || day0 ||day29){return false;}}return true;}
} 最大运行时间1s最大运行内存: 256M