java 如何比较两个日期其中的一个比另一个大3个月也就说怎么比较两个日期大几个月

解决方案 »

  1.   

    SimpleDateFormat   sdf   =   new   SimpleDateFormat(); 
    sdf.applyPattern( "yyyy-M-d "); 
    Date   d1   =   sdf.parse( "2004-12-21 "); 
    Date   d2   =   sdf.parse( "2004-12-25 "); 
    System.out.println(d1.compareTo(d2));
      

  2.   


    import java.util.Calendar;
    import java.util.Date;
    public class Test {
    public static void main(String[] args) {
    Calendar c1 = Calendar.getInstance();
    Calendar c2 = Calendar.getInstance();
    c1.setTime(new Date());
    c2.set(Calendar.YEAR, 2010);
    c2.set(Calendar.MONTH, 4);
    c2.set(Calendar.DAY_OF_MONTH, 25);
    int year1 = c1.get(Calendar.YEAR);
    int year2 = c2.get(Calendar.YEAR);
    int month1 = c1.get(Calendar.MONTH);
    int month2 = c2.get(Calendar.MONTH);
    int month;
    if(year1 >= year2) {
    month = (year1 - year2) * 12 + (month1 - month2);
    } else {
    month = (year2 - year1) * 12 + (month2 - month1);
    }
    System.out.println(month);
    }
    }简单写了一个!
      

  3.   

    compareTo只能比出大小。。如何确定大几个月呢???
      

  4.   

    转成日期类型Date,再比较大小 见3楼
      

  5.   


    import java.util.Calendar;public class Test { /**
     * @param args
     */
    public static void main(String[] args) { // 创建时间A对象
    Calendar dateA = Calendar.getInstance();
    dateA.set(2010, 9, 02);// 指定 年 月 日 // 创建时间B对象
    Calendar dateB = Calendar.getInstance();
    dateB.set(2011, 12, 02); int MonthNum = 0;// 存储月份差 /*
     * 时间对象.get(int 参数)
     *  Calendar.YEAR 为 Calendar类提供的静态字段--返回 YEAR 在时间格式中的索引
     */ // 计算年份差*12个月+月份差
    MonthNum = (dateA.get(Calendar.YEAR) - dateB.get(Calendar.YEAR)) * 12
    + (dateA.get(Calendar.MONTH) - dateB.get(Calendar.MONTH)); // 打印月份差
    System.out.println(MonthNum);
    }}
      

  6.   

    public static void main(String[] args) throws ParseException 
    {
    SimpleDateFormat time=new SimpleDateFormat();
    time.applyPattern("yyyy-MM-dd");
    Date d1 = time.parse( "2004-10-30"); 
    int h=d1.getMonth();
    System.out.println(h);
    Date d2 = time.parse( "2004-12-25 "); 
    int k=d2.getMonth();
    System.out.println(h-k);
    }
      

  7.   

    转换成String类型,然后用String类型比较大小
      

  8.   


        //判断月数
        int monthCounet = 3;    //比较日期1 2010/11/01
        Date date1 = new Date("2010/11/01");    //比较日期2 2011/02/02
        Date date2 = new Date("2010/02/02");     //比较日期1
        Calendar c1 = Calendar.getInstance().setTime(date1);    //比较日期2
        Calendar c2 = Calendar.getInstance().setTime(date2);    //日期1 + 比较月数
        c1.add(Calendar.MONTH, monthCounet);
        
        //比较日期
        int milliseconds = c1.compareTo(c2);    //根据milliseconds 来判断日期大小
        
        
    如果月的间隔数不固定,可以用循环c1逐月递加直到c1 > c2