java计算两个时间之间多少个月
4个回答
展开全部
应该可以满足你的需求了
/**
*
* 计算两个日期相差的月份数
*
* @param date1 日期1
* @param date2 日期2
* @param pattern 日期1和日期2的日期格式
* @return 相差的月份数
* @throws ParseException
*/
public static int countMonths(String date1,String date2,String pattern) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat(pattern);
Calendar c1=Calendar.getInstance();
Calendar c2=Calendar.getInstance();
c1.setTime(sdf.parse(date1));
c2.setTime(sdf.parse(date2));
int year =c2.get(Calendar.YEAR)-c1.get(Calendar.YEAR);
//开始日期若小月结束日期
if(year<0){
year=-year;
return year*12+c1.get(Calendar.MONTH)-c2.get(Calendar.MONTH);
}
return year*12+c2.get(Calendar.MONTH)-c1.get(Calendar.MONTH);
}
/**
*
* 计算两个日期相差的月份数
*
* @param date1 日期1
* @param date2 日期2
* @param pattern 日期1和日期2的日期格式
* @return 相差的月份数
* @throws ParseException
*/
public static int countMonths(String date1,String date2,String pattern) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat(pattern);
Calendar c1=Calendar.getInstance();
Calendar c2=Calendar.getInstance();
c1.setTime(sdf.parse(date1));
c2.setTime(sdf.parse(date2));
int year =c2.get(Calendar.YEAR)-c1.get(Calendar.YEAR);
//开始日期若小月结束日期
if(year<0){
year=-year;
return year*12+c1.get(Calendar.MONTH)-c2.get(Calendar.MONTH);
}
return year*12+c2.get(Calendar.MONTH)-c1.get(Calendar.MONTH);
}
展开全部
两个时间为字符串格式时:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date begin=sdf.parse(beginDate);
Date end=sdf.parse(endDate);
int months=(end.getYear()-begin.getYear())*12+(end.getMonth()-begin.getMonth());
两个时间为日期格式时:
int months=(end.getYear()-begin.getYear())*12+(end.getMonth()-begin.getMonth());
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date begin=sdf.parse(beginDate);
Date end=sdf.parse(endDate);
int months=(end.getYear()-begin.getYear())*12+(end.getMonth()-begin.getMonth());
两个时间为日期格式时:
int months=(end.getYear()-begin.getYear())*12+(end.getMonth()-begin.getMonth());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JodaMonth .
DateTime start = new DateTime(startDate.getTime());
DateTime end= new DateTime(endDate.getTime());
int months = Months.monthBetween(start, end).getMonths();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这两个时间是什么格式的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询