文档章节

两个时间段相隔自然月Util

木九天
 木九天
发布于 09/19 13:48
字数 207
阅读 12
收藏 0
public class DateUtil {

    public static int getDay(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.DATE);
    }


    public static int getMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.MONTH) + 1;
    }

    public static int getYear(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.YEAR);
    }

    public static int getDaysOfMonth(int year, int month) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(year, month - 1, 1);
        return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
    }

    public static int calDiffMonth(String startDate,String endDate){
        int result=0;
        try {
            SimpleDateFormat sfd=new SimpleDateFormat("yyyy-MM-dd");
            Date start = sfd.parse(startDate);
            Date end = sfd.parse(endDate);
            int startYear=getYear(start);
            int startMonth=getMonth(start);
            int startDay=getDay(start);
            int endYear=getYear(end);
            int endMonth=getMonth(end);
            int endDay=getDay(end);
            if (startDay>endDay){ //1月17  大于 2月28
                if (endDay==getDaysOfMonth(getYear(new Date()),2)){   //也满足一月
                    result=(endYear-startYear)*12+endMonth-startMonth;
                }else{
                    result=(endYear-startYear)*12+endMonth-startMonth-1;
                }
            }else{
                result=(endYear-startYear)*12+endMonth-startMonth;
            }

        } catch (ParseException e) {
            e.printStackTrace();
        }

        return result;
    }

    //测试正确
    public static void main(String[] args) {
        int i = calDiffMonth("2017-06-30", "2018-07-01");
        System.out.println(i);
    }
}

© 著作权归作者所有

共有 人打赏支持
木九天

木九天

粉丝 94
博文 190
码字总数 127086
作品 0
海淀
程序员
私信 提问
Nutz 1.r.66 发布,Java 应用框架

相隔了快5个月后,我们又回来了。 首先吐槽下上次发布版本后定的一堆目标,到目前为止一个都没实现... 定好了4月来点动作,之后很自然的推迟到5月,又从5月很自然推迟到6月,然后6月已经过半...

Google
06/15
988
12
excel操作点滴记录(长期更新)

1.如何快速给某一列中N行赋相同的值。 shift选择第N列,输入文字,ctrl+回车。 2.计算相隔日期 很简单,比如两个单元格A1,B1都是日期格式,需要计算相隔日期那个单元格设置成常规格式,然后使用公...

jeffsui
2013/11/18
0
0
JAVA处理日期时间 相加减

1.java.util.Calendar Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)...

长平狐
2012/08/29
350
0
mysql 数据定时备份、迁移 求具体操作(菜鸟求助啊!)

我想给做个在一个时间段备份、迁移 比如说:相隔三天备份、迁移一次 ,(备份能每次备份几天的数据吗?) 求高手指教啊 !

呆哥儿
2011/12/21
364
4
oracle数值类型--DATE、TIMESTAMP和INTERVAL类型

Oracle固有数据类型DATE、TIMESTAMP和INTERVAL是紧密相关的。DATE和TIMESTAMP类型存储精度可变的固定日期/时间。INTERVAL类型可以很容易地存储一个时间量,如“8个小时”或“30天”。 许多新...

Annabelle319
08/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么日志要private static final

private static final Log logger = LogFactory.getLog(SpringProperties.class); 对于使用PMD的任何人来说,如果日志记录器没有声明为静态的和final的,那么这个博客的标题就会出现在PMD错误...

stys35
9分钟前
0
0
基于深度学习模型Wide&Deep的推荐

本实验选用数据为UCI开源数据集,仅用于学习,请勿商用) Wide&Deep推荐算法出自一篇论文《Wide&Deep Learning for RecommenderSystems》,Wide&Deep由两部分组成,分别是Wide和Deep。先来说...

阿里云官方博客
12分钟前
0
0
列出文件目录结构

以下代码可快速列出所有文件夹,子文件夹下文件 用tree /f显示为树形结构 mypath = wsh.exec("cmd /c tree /f " & Chr(34) & mypath & Chr(34)).StdOut.ReadAll 用 dir显示为长文件名结构 my...

tedzheng
14分钟前
0
0
8.05-Win10 的一些个人设置

1、隐藏 Cortana搜索框 右击任务栏 ——> 找到Cortana ——> 里面有三个选项(隐藏;显示Cortana图标;显示搜索框) ——> 选中自己所需样式 2、显示“我的电脑”等按钮 桌面右键 ——> 个性...

静以修身2025
16分钟前
0
0
windows 下 es安装ik后报错无法启动

1、没有安装分词器时可以正常启动 2、在安装分词器后就报错了 错误信息:Exception in thread "main" java.security.AccessControlException: access denied ("java.io.FilePermission" "D...

zhu_kai1
20分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部