定义一个类MyDate,包含3个属性,year,month,day.然后定义一个int compare(MyDate date)方法,该方法将传入的日期对象和自己比较, 在main方法内创建一个包含10个MyDate对象的数组,根据MyDate定义的compare方法,将数组的对象按照从小到大的顺序排序。

解决方案 »

  1.   

    public class MyDate implements Comparable {


    private int year;
    private int month;
    private int day;
    public int compareTo(Object obj) {
    MyDate myDate = (MyDate)obj;
    if(myDate.year > this.year)
    return 1;
    else if(myDate.year == this.year){
    if(myDate.month>this.month){
    return 1;
    }else if(myDate.month == this.month){
    if(myDate.day>this.day){
    return 1;
    }else if(myDate.day == this.day){
    return 0;
    }else{
    return -1;
    }
    }else
    return -1;
    }else {
    return -1;
    }
    }
    public MyDate(){

    }
    public MyDate(int year,int month,int day){
    this.year = year;
    this.month = month;
    this.day = day;
    }
    public static void sort(MyDate[] myDate){
    System.out.println("排序前:");
    for(int i=0; i<myDate.length;i++){
    System.out.println(myDate[i].year+"-"+myDate[i].month+"-"+myDate[i].day);
    }
    MyDate obj = new MyDate();
    for(int i=0; i<myDate.length;i++){
    for(int j=i+1;j<myDate.length;j++){
    if(myDate[i].compareTo(myDate[j])== -1){    //1为降序,-1为升序
    obj = myDate[i];
    myDate[i]=myDate[j];
    myDate[j] = obj;
    }
    }
    }
    System.out.println("排序后:");
    for(int i=0; i<myDate.length;i++){
    System.out.println(myDate[i].year+"-"+myDate[i].month+"-"+myDate[i].day);
    }
    }
    public static void main(String[] args) {

    MyDate[] MyDate = new MyDate[10];
    MyDate[0] = new MyDate(2009,7,14);
    MyDate[1] = new MyDate(2008,1,24);
    MyDate[2] = new MyDate(2009,6,14);
    MyDate[3] = new MyDate(2009,6,13);
    MyDate[4] = new MyDate(2004,2,4);
    MyDate[5] = new MyDate(2001,7,14);
    MyDate[6] = new MyDate(2006,3,14);
    MyDate[7] = new MyDate(2006,4,13);
    MyDate[8] = new MyDate(2002,3,24);
    MyDate[9] = new MyDate(2005,7,14);

    sort(MyDate);

           }
    }