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小技能:对象数组按照日期分组和排序,使用块代码实现数组排序和乱序。
以上是关于java实现日期排序问题的主要内容,如果未能解决你的问题,请参考以下文章