java计算两个时间之间多少个月

 我来答
壁纸汇集站
2015-03-10 · TA获得超过155个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:64.7万
展开全部
应该可以满足你的需求了
/**
*
* 计算两个日期相差的月份数
*
* @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);
}
yanjun0819
2015-03-10
知道答主
回答量:37
采纳率:0%
帮助的人:5.1万
展开全部
两个时间为字符串格式时:

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());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lightmenow
2015-03-10 · TA获得超过330个赞
知道小有建树答主
回答量:319
采纳率:0%
帮助的人:155万
展开全部

JodaMonth .

DateTime start = new DateTime(startDate.getTime());
DateTime end= new DateTime(endDate.getTime());
int months = Months.monthBetween(start, end).getMonths();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiufeng6407
2015-03-10 · TA获得超过149个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:134万
展开全部
这两个时间是什么格式的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式