日期问题
来源:互联网 发布:淘宝u站管理中心 编辑:程序博客网 时间:2024/05/16 09:05
小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在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
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
/*
*思路:先排列所有可能的情况,再筛选出符合的情况 。*/
public class Main{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
while(in.hasNext())
{
String str=in.next();
String[] a=str.split("/");//将输入的截取为三个String串
String[] s=new String[3];//S[]数组用于存储所有的可能的情况,无非就AA-BB-CC,CC-AA-BB,CC-BB-AA
int b=Integer.parseInt(a[0]);//即AA的整数形式
int d=Integer.parseInt(a[2]);//BB的整数形式
if(b>60)
s[0]="19"+a[0]+a[1]+a[2];
else
s[0]="20"+a[0]+a[1]+a[2];
if(d>60)
{
s[1]="19"+a[2]+a[1]+a[0];
s[2]="19"+a[2]+a[0]+a[1];
}
else
{
s[1]="20"+a[2]+a[1]+a[0];
s[2]="20"+a[2]+a[0]+a[1];
}
int[]t =new int[3];//将s[]转化为int[],方便用于排序
for(int i=0;i<3;i++)
t[i]=Integer.parseInt(s[i]);
Arrays.sort(t);
int k=0;
for(int i=0;i<t.length;i++)
{
if(check(t[i]))//检查符不符合实际条件,符合则重新放入t[]数组中
{
t[k++]=t[i];
}
}
for(int i=0;i<k;i++)
{
str=String.valueOf(t[i]);
System.out.println(str.substring(0,4)+"-"+str.substring(4,6)+"-"+
str.substring(6,str.length()));
}
}
}
private static boolean check(int num) {
// TODO Auto-generated method stub
int[] a= {31,28,31,30,31,30,31,31,30,31,30,31};
int year=num/10000;
int month=num/100%100;
int day=num%100;
if(month>12 || day>31)
return false;
if(isLeapYear(year) && month==2 && day>29)
return false;
if(day>a[month-1])
return false;
return true;
}
private static boolean isLeapYear(int y) {
// TODO Auto-generated method stub
if((y%4==0 && y%100!=0) ||y%400==0)
return true;
return false;
}
}
阅读全文
0 0
- 日期问题
- 日期问题
- 日期问题
- 日期问题
- 日期问题
- 日期问题
- 日期问题
- 日期问题
- 日期问题
- 日期验证问题
- queryDataSet 日期问题?
- dataview日期格式化问题!
- 日期控件的问题!!!!!!!!!!!!!!!
- 日期空件问题。
- 中英文日期问题
- 日期格式转换问题
- mysql 日期转换问题
- js日期问题
- linux -- Ubuntu修改静态IP地址重启后无法上网的解决
- 用 bat 批处理命令启动 Android Studio 自带模拟器
- [jQuery Validate]前端校验
- ubuntu 16.04 LTS
- 【CSS】浅谈css中格式化上下文BFC、IFC(一)
- 日期问题
- IplImage, CvMat, Mat 的关系
- 计算机分类经典书籍推荐
- jupyter notebook 增加kernel的方法
- Go 生产者消费者模型
- python学习笔记 第二章
- win10用cmd运行java可以,却不能运行javac.
- Android中各种Span的用法
- c++栈和java栈的区别