2017蓝桥杯省赛---java---B---7(日期问题)
生活随笔
收集整理的這篇文章主要介紹了
2017蓝桥杯省赛---java---B---7(日期问题)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
日期問題
標(biāo)題:日期問題小明正在整理一批歷史文獻(xiàn)。這些歷史文獻(xiàn)中出現(xiàn)了很多日期。小明知道這些日期都在1960年1月1日至2059年12月31日。令小明頭疼的是,這些日期采用的格式非常不統(tǒng)一,有采用年/月/日的,有采用月/日/年的,還有采用日/月/年的。更加麻煩的是,年份也都省略了前兩位,使得文獻(xiàn)上的一個(gè)日期,存在很多可能的日期與其對應(yīng)。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。給出一個(gè)文獻(xiàn)上的日期,你能幫助小明判斷有哪些可能的日期對其對應(yīng)嗎?輸入 ---- 一個(gè)日期,格式是"AA/BB/CC"。 (0 <= A, B, C <= 9) 輸入 ---- 輸出若干個(gè)不相同的日期,每個(gè)日期一行,格式是"yyyy-MM-dd"。多個(gè)日期按從早到晚排列。 樣例輸入 ---- 02/03/04 樣例輸出 ---- 2002-03-04 2004-02-03 2004-03-02 資源約定: 峰值內(nèi)存消耗(含虛擬機(jī)) < 256M CPU消耗 < 1000ms請嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內(nèi)容。所有代碼放在同一個(gè)源文件中,調(diào)試通過后,拷貝提交該源碼。 不要使用package語句。不要使用jdk1.7及以上版本的特性。 主類的名字必須是:Main,否則按無效代碼處理。 ———————————————— 版權(quán)聲明:本文為CSDN博主「公眾號(hào)-放生改命」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/weixin_44949135/article/details/108143554代碼實(shí)現(xiàn)
package com.atguigu.TEST;import java.util.Scanner; import java.util.Set; import java.util.TreeSet;class Main{public static boolean isLeap(int year){return (year%4==0&&year%100!=0)||year%400==0;}public static String f(int a,int b,int c){if(a>=0&&a<=59){ a+=2000;}else if (a>=60&&a<=99){ a+=1900;}else return "";if(b<1||b>12) return "";if(c<1||c>31) return "";boolean _isLeap=isLeap(a);switch (b){//日期校驗(yàn)case 2:if(_isLeap&&c>29) return "";if(!_isLeap&&c>28) return "";break;case 4:if(c>30) return "";break;case 6:if(c>30) return "";break;case 9:if(c>30) return "";break;case 11:if(c>30) return "";break;default:break;}String _a,_b,_c;_a=a+"";_b=b+"";_c=c+"";if(_b.length()==1)_b="0"+_b;if(_c.length()==1)_c="0"+_c;return _a+"-"+_b+"-"+_c;}public static void main(String[] args) {String in;Scanner scanner = new Scanner(System.in);in=scanner.next();int a=(in.charAt(0)-'0')*10+(in.charAt(1)-'0');int b=(in.charAt(3)-'0')*10+(in.charAt(4)-'0');int c=(in.charAt(6)-'0')*10+(in.charAt(7)-'0');String case1=f(a,b,c);String case2=f(c,a,b);String case3=f(c,b,a);//tree帶去重和排序功能Set<String> ans = new TreeSet<>();if(case1!="") ans.add(case1);if(case2!="") ans.add(case2);if(case3!="") ans.add(case3);for(String set:ans) {System.out.println(set);}}}總結(jié)
以上是生活随笔為你收集整理的2017蓝桥杯省赛---java---B---7(日期问题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017蓝桥杯省赛---java---B
- 下一篇: 怎么在电脑里找到显卡的软件?