前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java 获取两个日期相差的月数

Java 获取两个日期相差的月数

作者头像
一个会写诗的程序员
发布于 2020-02-13 10:19:12
发布于 2020-02-13 10:19:12
4.8K00
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    /**
     * 获取两个日期相差的月数
     */
    public static int getMonthDiff(Date d1, Date d2) {
        Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
        c1.setTime(d1);
        c2.setTime(d2);
        int year1 = c1.get(Calendar.YEAR);
        int year2 = c2.get(Calendar.YEAR);
        int month1 = c1.get(Calendar.MONTH);
        int month2 = c2.get(Calendar.MONTH);
        int day1 = c1.get(Calendar.DAY_OF_MONTH);
        int day2 = c2.get(Calendar.DAY_OF_MONTH);
        // 获取年的差值 
        int yearInterval = year1 - year2;
        // 如果 d1的 月-日 小于 d2的 月-日 那么 yearInterval-- 这样就得到了相差的年数
        if (month1 < month2 || month1 == month2 && day1 < day2) {
            yearInterval--;
        }
        // 获取月数差值
        int monthInterval = (month1 + 12) - month2;
        if (day1 < day2) {
            monthInterval--;
        }
        monthInterval %= 12;
        int monthsDiff = Math.abs(yearInterval * 12 + monthInterval);
        return monthsDiff;
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
日期类相关练习题
本文记录一些有关日期类的oj题题解,实现过日期类小项目的可以练一下手,本文不做过多讲解.
初阶牛
2023/10/14
1800
Java Calendar获取年、月、日、时间[通俗易懂]
Calendar c = Calendar.getInstance(TimeZone.getTimeZone(“GMT+08:00”));//获取东八区时间
全栈程序员站长
2022/08/15
5.2K0
ZOJ 3326 An Awful Problem(模拟)
An Awful Problem ---- Time Limit: 1 Second      Memory Limit: 32768 KB ---- In order to encourage Hiqivenfin to study math, his mother gave him a sweet candy when the day of the month was a prime number. Hiqivenfin was happy with that. But several days lat
ShenduCC
2018/04/26
5250
C++类相关oj题目分享(计算日期到天数转换、日期差值、打印日期、日期累加)
是Nero哦
2024/01/20
2810
C++类相关oj题目分享(计算日期到天数转换、日期差值、打印日期、日期累加)
【C/C++】“秒懂”学C/C++不可错过的“经典编程题” — 日期类的经典运用 (含题链接)
通过函数GetMonthDay(int year, int month)可以轻松得到某年某月天数(0月是0天),看图片右边,我们先将3月天数15单独放一边,让3月先减1得到2,然后通过函数得到2月天数,将其保存再sum中,然后月份再减1,得到1月天数,累加到sum(初始化为0)中,直到月份为0;这里我们就得到了1月加2月的天数,最后输出的时候我们把单独放在一边的3月的天数加上。 其他日期道理相同,因此得到代码:
六点半就起.
2024/10/16
860
【C/C++】“秒懂”学C/C++不可错过的“经典编程题” — 日期类的经典运用 (含题链接)
java中经常使用的日期格式化(全)「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115600.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/10
2K0
Contest100000578 – 《算法笔记》3.4小节——入门模拟->日期处理
http://codeup.cn/contest.php?cid=100000578 Problem A: 日期差值 Time Limit: 1.000 Sec Memory Limit: 32 M
可定
2020/04/20
4300
date类和calendar类的区别_java类中可以定义类吗
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用。
全栈程序员站长
2022/09/30
1.4K0
不要网上乱拷贝代码了!一段网上找的代码突然炸了!
这个需求实现起来很简单,只需要在玩家上线的时候计算上次离线时间和当前时间间隔的天数,然后根据策划的算法,计算出道具种类与数量,发一封邮件给玩家就可以了。
后端码匠
2020/05/05
5980
Java中String、Date、LocalDate互相转换工具类
该工具类实现的功能有: 1.String日期转Date 2.Date日期转String 3.Date日期转LocaDate 4.LocalDate转Date 5.获取当前日期(String) 6.获取当前日期(Date) 7.获取两个日期之间的间隔 8.获取日期的星期 9.比较两个日期的大小 10.日期转为时间戳 11.时间戳转日期 12.去除日期连接符号(“-”),转为long 13.日期加上相应的天数 代码如下所示: import java.tex
林老师带你学编程
2022/05/06
2.6K0
C++031-C++日期模拟
在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/
用户2225445
2023/10/16
1920
C++031-C++日期模拟
第三阶段-Java常见对象:【第十一章 Date、DateFormat和Calendar类】
可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat。
BWH_Steven
2019/08/09
4110
Java常见日期格式及日期的计算工具类
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.List;
一头小山猪
2020/06/15
4.4K0
Java 8计算两个日期之间的月份
在上述两个日期之间的91天持续时间,期望代码返回3个月的持续时间,但是以下方法仅返回2个月。这是Java 8中的bug 吗?日期为91天,却仅返回2个月。
JavaEdge
2021/10/18
6.2K0
Java时间工具类
import java.sql.Timestamp; import java.text.ParseException; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class TimestampTool { /** 将毫秒转成时间 *
用户7108768
2021/09/23
1.8K0
javaCalendar日期比较
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142081.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/25
1.8K0
java获取当前日期和时间(各种方法对比)
System.currentTimeMillis()产生一个当前的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数,类型为long; Date:
ha_lydms
2023/08/09
3.1K0
java获取当前日期和时间(各种方法对比)
Java获取的一天、本星期、这个月、本季度、一年等 开始和结束时间
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117655.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/05
8680
Oracle - 截取指定日期的alert log
工作中DBA经常会查看alert log来检查数据库后台都记录了些什么日志,如果只想看某一天或者某段时间范围的日志,能够把这些日志从大的alert log中截取下来放到一个单独的文件中,对于查看和下载都是很有意义的事,接下来附上脚本
用户8006012
2022/08/09
1.2K0
Java获取上一周、上一个月、上一年的时间
SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); Calendar c = Calendar.getInstance(); 1.过去七天 c.setTime(new Date()); c.add(Calendar.DATE, - 7); Date d = c.getTime(); String day = format.format(d); System.out.println(“过去七天:”+day); 2
栗筝i
2022/12/01
1.9K0
推荐阅读
相关推荐
日期类相关练习题
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验