java实现日期排序问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java实现日期排序问题相关的知识,希望对你有一定的参考价值。

一个文件中记录着一个2008年中的一个日期或一段日期:
6月3日
5月9日
9月6日
3月2日-4月8日
……
设计一个算法使得让这些数据按时间数序排序,并且统计总天数(可以用C、Java或文字描述)

java按文件日期排序方法,下面以对C盘Java目录下文件进行按日期排序为例:

//引用java.io包里的所有类
import java.io.*;
import java.util.*;
public class FileOrder
//按日期排序
public static void orderByDate(String fliePath) 
   File file = new File(fliePath);
   File[] fs = file.listFiles();
   Arrays.sort(fs,new Comparator< File>()
     public int compare(File f1, File f2) 
long diff = f1.lastModified() - f2.lastModified();
if (diff > 0)
  return 1;
else if (diff == 0)
  return 0;
else
  return -1;
     
     public boolean equals(Object obj) 
return true;
     

     );
     for (int i = fs.length-1; i >-1; i--) 
System.out.println(fs[i].getName());
System.out.println(new Date(fs[i].lastModified()));
      
  
   public static void main(String args[])
      orderByDate("c:/java"); //调用方法对c:/java目录下文件按日期排序
      
参考技术A 把每个日期读到一个java.util.Date对象中
然后把这些对象装进一个ArrayList中
然后用Collections.sort(那个arraylist);即可本回答被提问者采纳
参考技术B public class TestBubble
public static void main(String[] args)
Date[] days = new Date[5];
days[0]= new Date(2008,6,3);
days[1]= new Date(2008,5,9);
days[2]= new Date(2008,9,6);
days[3]= new Date(2008,3,2);
days[4]= new Date(2008,4,8);

bubbleSort(days);
for(int i=0;i<days.length;i++)
System.out.println(days[i]);


public static void bubbleSort(Date[] d)
int len=d.length;
for(int i=len-1;i>=1;i--)
for(int j=0;j<=i-1;j++)
if(d[j].compare(d[j+1])>0)
Date temp=d[j];
d[j]=d[j+1];
d[j+1]=temp;








class Date
int year;
int month;
int day;
Date(int year,int month,int day)
this.year=year;
this.month=month;
this.day=day;

public int compare(Date d)
return year > d.year ? 1
: year < d.year ? -1
: month > d.month ? 1
: month < d.month ? -1
: day > d.day ? 1
: day < d.day ? -1
: 0;


public String toString ()
return year+"-"+month+"-"+day;


iOS小技能:对象数组按照日期分组和排序,使用块代码实现数组排序和乱序。

引言

  1. 将含有日期属性的对象数组按照日期重新分组
  2. 将对象数组按照时间戳排序
  3. iOS NSPredicate的应用指南之【从数组搜索特定条件的元素】(从数组中筛选type=8的电子签名数据,避免遍历数组 )

I 对象数组按照日期分组排序

应用场景:登录界面按照最近登录时间排序、账单流水按照订单完成时间排序


以上是关于java实现日期排序问题的主要内容,如果未能解决你的问题,请参考以下文章

java中list排序

java 按日期分组 算法

Java中对JSONArray中的对象的某个字段进行排序

Java中对JSONArray中的对象的某个字段进行排序

java中验证时间不交叉/不重复的方法

Java高级工程师必备知识!mysql格式化日期函数