蓝桥杯java第八届第七题--日期问题
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯java第八届第七题--日期问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
標題:日期問題小明正在整理一批歷史文獻。這些歷史文獻中出現了很多日期。小明知道這些日期都在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 資源約定:
峰值內存消耗(含虛擬機) < 256M
CPU消耗 < 1000ms請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內容。
沒什么好說的。。
package com.sihai.test;import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.Scanner; public class test { static String a1,b1,c1; static HashSet<Integer> res = new HashSet<Integer>(); static ArrayList<Integer> list = new ArrayList<Integer>(); static void getDate(String a1,String b1,String c1){ int a; if(Integer.parseInt(a1)>=0 && Integer.parseInt(a1)<=59) a = Integer.parseInt(("20"+a1)); else a = Integer.parseInt(("19"+a1)); int b = Integer.parseInt(b1); int c = Integer.parseInt(c1); if(((a%4==0 && a%100!=0) ||a%400==0) && b==2 && c>0 && c<=29) res.add(Integer.parseInt(""+a+b1+c1)); if(a%4!=0 && b==2 && c>0 && c<=28) res.add(Integer.parseInt(""+a+b1+c1)); if((b==1 || b==3 || b==5 || b==7 || b==8 || b==10 || b==12) && c>0 && c<=31) res.add(Integer.parseInt(""+a+b1+c1)); if((b==4 || b==6 || b==9 || b==11) && c>0 && c<=30) res.add(Integer.parseInt(""+a+b1+c1)); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); String[] ss = s.split("/"); a1 = ss[0]; b1 = ss[1]; c1 = ss[2]; getDate(a1, b1, c1); getDate(b1, c1, a1); getDate(c1, b1, a1); list.addAll(res); Collections.sort(list); for(int i:res){ System.out.println((""+i).substring(0, 4)+"-"+(""+i).substring(4, 6)+"-"+(""+i).substring(6,8)); } } }總結
以上是生活随笔為你收集整理的蓝桥杯java第八届第七题--日期问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯java第八届第十题--k倍区间
- 下一篇: 蓝桥杯java第八届第四题--魔方状态