`
guoyulong005
  • 浏览: 30554 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

java时间比较(月和天)

阅读更多
//早于截止时间
    public static boolean isDateBefore(String endTime){   
          try{
                Date date1 = new Date();
                DateFormat df = DateFormat.getDateTimeInstance();
                return date1.before(df.parse(endTime));
          }catch(ParseException e){
              System.out.print(e.getMessage());
              return false;
        }
    }
   
    //晚于起始时间
    public static boolean isDateAfter(String startTime){
        try{
            Date date1 = new Date();
            DateFormat df = DateFormat.getDateTimeInstance();
            return date1.after(df.parse(startTime));
        }catch(ParseException e){
            System.out.print(e.getMessage());
            return false;
        }
    }
    public static void main(String[] args) {
           String date = "";  
           SimpleDateFormat  sdf=  new   SimpleDateFormat("yyyy-MM-dd");  
           java.util.Date   dd     =   Calendar.getInstance().getTime();  
           date = sdf.format(dd);
              
            boolean flag = isDateBefore(date+" 09:01:00");
            boolean flag2  = isDateBefore(date+" 17:29:00");
           
            boolean flag3 = isDateAfter(date+" 09:01:00");
            boolean flag4 = isDateAfter(date+" 17:29:00");
           
            System.out.println(flag+","+flag2);
            System.out.println(flag3+","+flag4);
       
    }

/**
     * 得到两日期相差几个月
     *
     * @param String
     * @return
     */
    public static long getMonth(String startDate, String endDate) {
        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
        long monthday;
        try {
            Date startDate1 = f.parse(startDate);
            //开始时间与今天相比较
            Date endDate1 = new Date();

            Calendar starCal = Calendar.getInstance();
            starCal.setTime(startDate1);

            int sYear = starCal.get(Calendar.YEAR);
            int sMonth = starCal.get(Calendar.MONTH);
            int sDay = starCal.get(Calendar.DATE);

            Calendar endCal = Calendar.getInstance();
            endCal.setTime(endDate1);
            int eYear = endCal.get(Calendar.YEAR);
            int eMonth = endCal.get(Calendar.MONTH);
            int eDay = endCal.get(Calendar.DATE);

            monthday = ((eYear - sYear) * 12 + (eMonth - sMonth));

            if (sDay < eDay) {
                monthday = monthday + 1;
            }
            return monthday;
        } catch (ParseException e) {
            logger.debug("获取相差月数失败");
            monthday = 0;
        }
        return monthday;
    }


/**
   * 两个年月相减,获得相差月数
   * @param String 第一个日期(yyyyMM)
   * @param String 第二个日期(yyyyMM)
   * @return int 相差月数
   * @throws java.text.ParseException
   */
   public static int getMonthNum(String date1,String date2) throws java.text.ParseException{
   if("".equals(ConvertUtil.convertNull(date1))||"".equals(ConvertUtil.convertNull(date2))){
   return 0;
   }
   Date d = null;
   Date d1 = null;
   SimpleDateFormat df = new SimpleDateFormat("yyyyMM");
   d = df.parse(date1);
   d1 = df.parse(date2);

   // 比较日期大小
   if (d.getTime() > d1.getTime()) {
   System.out.println(df.format(d));
   } else {
   System.out.println(df.format(d1));
   }

   Calendar c = Calendar.getInstance();
   c.setTime(d);

   int year = c.get(Calendar.YEAR);
   int month = c.get(Calendar.MONTH);

   c.setTime(d1);
   int year1 = c.get(Calendar.YEAR);
   int month1 = c.get(Calendar.MONTH);

   int result;
   if (year == year1) {
   result = month1 - month + 1;// 两个日期相差几个月,即月份差
   } else {
   result = 12 * (year1 - year) + month1 - month + 1;// 两个日期相差几个月,即月份差
   }
   return result;
   }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics