开发者社区 问答 正文

java如何实现两个时间相减得到年月

java实现两个时间相减得到年月,例如:
开始日期:2015-06-20,结束日期:2016-02-05。结果为:7个月
开始日期:2015-06-20,结束日期:2015-12-12。结果为:6个月
开始日期:2015-06-20,结束日期:2017-10-10。结果为:2年3个月
开始日期:2015-12-10,结束日期:2017-10-10。结果为:1年10个月

展开
收起
蛮大人123 2016-03-13 15:20:52 3978 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    public static void main(String[] args) {
            String startTime = "2015-06-20";
            String endTime = "2016-02-05";
    
            String[] arg1 = startTime.split("-");
            String[] arg2 = endTime.split("-");
            int year1 = Integer.valueOf(arg1[0]);
            int year2 = Integer.valueOf(arg2[0]);
            int month1 = Integer.valueOf(arg1[1]);
            int month2 = Integer.valueOf(arg2[1]);
            int day1 = Integer.valueOf(arg1[2]);
            int day2 = Integer.valueOf(arg2[2]);
            int md = 0 ;
            if(year1!=year2){
                md = day2>day1?0:-1;
            }
            int diffMonth = (year2*12+month2)-(year1*12+month1)+md;
            int yearNum = diffMonth/12;
            int monthNum = diffMonth % 12;
            System.out.println("年数="+yearNum+",月数="+monthNum);
        }
    2019-07-17 19:02:39
    赞同 展开评论
问答分类:
问答标签:
问答地址: