JAVA 日期排序 100
将List类型数据排序,list中包开始日期periodFrom,结束日期periodTo,日期格式例:开始日期1:2018年3月18日,结束日期1:2018年3月22日...
将List类型数据排序,list中包开始日期periodFrom,结束日期periodTo,
日期格式例:
开始日期1:2018年3月18日,结束日期1:2018年3月22日
开始日期1:2018年3月20日,结束日期1:2018年3月25日
开始日期1:2018年3月13日,结束日期1:2018年3月20日
开始日期1:2018年3月12日,结束日期1:2018年3月18日
开始日期1:2018年3月19日,结束日期1:2018年3月19日
将这条数据以开始日期升序和结束日期升序排序. 展开
日期格式例:
开始日期1:2018年3月18日,结束日期1:2018年3月22日
开始日期1:2018年3月20日,结束日期1:2018年3月25日
开始日期1:2018年3月13日,结束日期1:2018年3月20日
开始日期1:2018年3月12日,结束日期1:2018年3月18日
开始日期1:2018年3月19日,结束日期1:2018年3月19日
将这条数据以开始日期升序和结束日期升序排序. 展开
展开全部
前提,假设你使用一个数组来保存一组开始时间+结束时间,当然,你也可以用其它的数据结构。
基本思路,1转换为Date型,2使用Calendar类来比较两个日期,3 自己实现compare方法:
各部分的例子:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
Date startDate1 = simpleDateFormat.parse("2018年3月18日");
Date startDate2 = simpleDateFormat.parse("2018年3月12日");
private void sort(List<Date> dataList){
Collections.sort(dataList, new Comparator<Date>() {
@Override
public int compare(Date o1, Date o2) {
if(d1 != null && d2 != null){
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(o1);
c2.setTime(o2);
return c1.After(c2);
}else{
return -1;
}
}
});
}
大概写了下,具体你自己调调,还要注意异常处理。
展开全部
日期都是string类型的吧,不带格式的日期比较才好一点的
追问
格式不是重点,主要是这个java逻辑怎么写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把这个list当作两个list来操作即开始日期list和结束日期list,日期排序比较简单将年月日进行格式化为String,把String用大于小于就能排序,排好以后将两个list addAll,需要代码可以追问
追问
请问,将日期排序之后,如何将开始日期和结束日期进行拼接,这段逻辑应该怎么实现
追答
不好意思,刚才看错题设了,我重新解释,例如:A1---a1 B1---b1
这里的A1表示开始日期,a1表示结束日期,后面的类似.
若要以开始日期升序则只需要排序A1和B1,若要以结束日期升序排序只需要排序a1和b1
至于要拼接,下标即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你留个邮箱 回头我发给你 不就一个排序嘛
追问
如有代码,可否截图在追答里面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |