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;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值