两个Date类型的日期,怎样用java写程序判断是否是同一年,同一个月呢?

解决方案 »

  1.   

    Date d1 = new Date();
    Date d2 = new Date();
    System.out.println(d1.getYear() == d2.getYear() && d1.getMonth() == d2.getMonth());
      

  2.   

    Date.getter方法已经deprecated了
    可以考虑用Calendar c = Calendar.getInstance();
    c.setDate(Date date);
    Calendar.get(Calendar.YEAR)
      

  3.   

    通过java提供的日期api方法分别对日期取年份,月份,日再进行比较就可以了
      

  4.   

       /**
         * 判断二个时间是否在同一个周
         *
         * @param date1
         * @param date2
         * @return
         */
        public static boolean isSameWeekDates(Date date1, Date date2) {
            Calendar cal1 = Calendar.getInstance();
            Calendar cal2 = Calendar.getInstance();
            cal1.setTime(date1);
            cal2.setTime(date2);
            int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
            if (0 == subYear) {
                if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
                    return true;
            } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
                // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周
                if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
                    return true;
            } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
                if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
                    return true;
            }
            return false;
        }http://javaprogram.5d6d.com/thread-322-1-1.html
      

  5.   

    DateFormat   df   =   new   SimpleDateFormat( "yyyy-MM-dd",Locale.SIMPLIFIED_CHINESE); 
                                                      Date   d11   =   df.parse("2007-11-27"); 
                                                      Date   d22   =   df.parse("2007-11-27"); 
                                                      boolean   a   =   d11.before(d22); 
      

  6.   


    package test;import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;public class TestD
    {
     public static boolean isSameYearMonth(Date date1, Date date2) { 
         Calendar cal1 = Calendar.getInstance(); 
         Calendar cal2 = Calendar.getInstance(); 
         cal1.setTime(date1); 
         cal2.setTime(date2); 
         int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR); 
         int subMonth=cal1.get(Calendar.MONTH)-cal2.get(Calendar.MONTH);
         
         if (0 == subYear&& 0==subMonth)
          return true;
         return false; 
       } 

    public static void main(String[] args) throws ParseException
    {
        TestD x=new TestD ();
        Date x1= new Date();
        Date x2= new Date();
        SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd");
        x1=d.parse("2007-12-1");
        x2=d.parse("2007-12-31");
       if( x.isSameYearMonth(x1, x2))
       {
       System.out.println(x1.toString()+"和"+x2.toGMTString()+"同年同月");
       }
       else
       {
       System.out.println(x1.toLocaleString()+"和"+x2.toLocaleString()+"不同年同月");
       } }
    }