奋斗的殇鹿
2017-02-21 08:33
采纳率: 36.1%
浏览 3.7k
已采纳

新手求教,JAVA怎么计算出两个日期之间相差多少个月??在线等。。。

就比如:2017-04-21 和 2018-04-21 我要的结果是 12

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • engchina 2017-02-21 08:41
    已采纳

    If you can't use JodaTime, you can do the following:

        public int getMonths(Date startDate, Date endDate) {
            Calendar startCalendar = new GregorianCalendar();
            startCalendar.setTime(startDate);
            Calendar endCalendar = new GregorianCalendar();
            endCalendar.setTime(endDate);
    
            int diffYear = endCalendar.get(Calendar.YEAR) - startCalendar.get(Calendar.YEAR);
            int diffMonth = diffYear * 12 + endCalendar.get(Calendar.MONTH) - startCalendar.get(Calendar.MONTH);
            return diffMonth;
        }
    
    打赏 评论
  • android码农 2017-02-21 08:46

    给的日期是什么格式的?2007/12/22还是其他

    打赏 评论
  • daochuwenziyao 2017-02-21 08:51

    其实只要获取日期的总月份再相减就行了,日期总月份=年份X12+月份。最后取正值

    /**
    *
    * 两个日期相差的月份
    * @param start 启始日期
    * @param end 结束日期
    * @return 相差的月份
    * @see [类、类#方法、类#成员]
    */
    public static int getCountMonths(Calendar start, Calendar end)
    {
    int startMonths = start.get(Calendar.YEAR) * 12 + start.get(Calendar.MONTH);
    int endMonths = end.get(Calendar.YEAR) * 12 + end.get(Calendar.MONTH);
    return (startMonths > endMonths ? startMonths - endMonths : endMonths - startMonths);
    }

    
    
    打赏 评论

相关推荐 更多相似问题