hutool实战:ChineseDate(农历日期工具类)

该文章详细介绍了Hutool库中用于处理农历日期的ChineseDate类,包括通过公历和农历日期构造、获取年月日、判断闰月、获取节日、生肖和节气等方法,覆盖了2055年前的日期范围。提供了多个示例代码展示如何使用这些方法。
摘要由CSDN通过智能技术生成

用途:农历日期工具类
使用场景
农历日期工具,最大支持到2055年,支持:

通过公历日期构造获取对应农历
通过农历日期直接构造
项目引用
此博文的依据:hutool-5.6.5版本源码

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-core</artifactId>
            <version>5.6.5</version>
        </dependency>

方法摘要
方法    描述
cn.hutool.core.date.ChineseDate.getChineseYear()    
获得农历年份
cn.hutool.core.date.ChineseDate.getGregorianYear()    
获取公历的年
cn.hutool.core.date.ChineseDate.getMonth()    
获取农历的月,从1开始计数
cn.hutool.core.date.ChineseDate.getGregorianMonthBase1()    
获取公历的月,从1开始计数
cn.hutool.core.date.ChineseDate.getGregorianMonth()    
获取公历的月,从0开始计数
cn.hutool.core.date.ChineseDate.isLeapMonth()    
当前农历月份是否为闰月
cn.hutool.core.date.ChineseDate.getChineseMonth()    
获得农历月份(中文,例如二月,十二月,或者润一月)
cn.hutool.core.date.ChineseDate.getChineseMonthName()    
获得农历月称呼(中文,例如二月,腊月,或者润正月)
cn.hutool.core.date.ChineseDate.getDay()    
获取农历的日,从1开始计数
cn.hutool.core.date.ChineseDate.getGregorianDay()    
获取公历的日
cn.hutool.core.date.ChineseDate.getChineseDay()    
获得农历日
cn.hutool.core.date.ChineseDate.getGregorianDate()    
获取公历的Date
cn.hutool.core.date.ChineseDate.getGregorianCalendar()    
获取公历的Calendar
cn.hutool.core.date.ChineseDate.getFestivals()    
获得节日
cn.hutool.core.date.ChineseDate.getChineseZodiac()    
获得年份生肖
cn.hutool.core.date.ChineseDate.getCyclical()    
获得年的天干地支
cn.hutool.core.date.ChineseDate.getCyclicalYMD()    
干支纪年信息
cn.hutool.core.date.ChineseDate.getTerm()    
获得节气
cn.hutool.core.date.ChineseDate.toStringNormal()    
转换为标准的日期格式来表示农历日期,例如2020-01-13
cn.hutool.core.date.ChineseDate.toString()    
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getChineseYear()
方法描述
获得农历年份

支持版本及以上
参数描述:
参数名    描述
返回值:
返回农历年份

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));
        Assert.assertEquals("2020-01-25 00:00:00", date.getGregorianDate().toString());
        Assert.assertEquals(2020, date.getChineseYear());

源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getGregorianYear()
方法描述
获取公历的年

支持版本及以上
 

参数描述:
参数名    描述
返回值:
公历年

参考案例:
        //获取公历的年
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));
        Assert.assertEquals(2021, date.getGregorianYear());

源码解析:
链接:待补充

方法明细
方法名称:cn.hutool.core.date.ChineseDate.getMonth()
方法描述
获取农历的月,从1开始计数

支持版本及以上
 

参数描述:
参数名    描述
返回值:
农历的月

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));
        Assert.assertEquals(1, date.getMonth());        

源码解析:
链接:待补充

方法明细
方法名称:cn.hutool.core.date.ChineseDate.getGregorianMonthBase1()
方法描述
获取公历的月,从1开始计数

支持版本及以上
 

参数描述:
参数名    描述
返回值:
公历月

参考案例:
        //获取公历的月,从1开始计数
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));
        Assert.assertEquals(5, date.getGregorianMonthBase1());

源码解析:
链接:待补充

方法明细
方法名称:cn.hutool.core.date.ChineseDate.getGregorianMonth()
方法描述
获取公历的月,从0开始计数

支持版本及以上
 

参数描述:
参数名    描述
返回值:
公历月

参考案例:
        //获取公历的月,从0开始计数
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));
        Assert.assertEquals(4, date.getGregorianMonth());

源码解析:
链接:待补充

方法明细
方法名称:cn.hutool.core.date.ChineseDate.isLeapMonth()
方法描述
当前农历月份是否为闰月

支持版本及以上
 

参数描述:
参数名    描述
返回值:
是否为闰月

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-05-19"));
        Assert.assertEquals(true, date.isLeapMonth());
        date = new ChineseDate(DateUtil.parseDate("2021-05-19"));
        Assert.assertEquals(false, date.isLeapMonth());

源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getChineseMonth()
方法描述
获得农历月份(中文,例如二月,十二月,或者润一月)

支持版本及以上
参数描述:
参数名    描述
返回值:
返回农历月份

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));
        Assert.assertEquals("一月", date.getChineseMonth());
源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getChineseMonthName()
方法描述
获得农历月称呼(中文,例如二月,腊月,或者润正月)

支持版本及以上
参数描述:
参数名    描述
返回值:
返回农历月份称呼

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));
        Assert.assertEquals("正月", date.getChineseMonthName());

源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getDay()
方法描述
获取农历的日,从1开始计数

支持版本及以上
 

参数描述:
参数名    描述
返回值:
农历的日,从1开始计数

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));
        Assert.assertEquals(1, date.getDay());
源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getGregorianDay()
方法描述
获取公历的日

支持版本及以上

参数描述:
参数名    描述
返回值:
公历日

参考案例:
        //获取公历的日
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));
        Assert.assertEquals(19, date.getGregorianDay());

源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getChineseDay()
方法描述
获得农历日

支持版本及以上
参数描述:
参数名    描述
返回值:
获得农历日

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));
        Assert.assertEquals("初一", date.getChineseDay());

源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getGregorianDate()
方法描述
获取公历的Date

支持版本及以上
5.6.1

参数描述:
参数名    描述
返回值:
公历Date

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));
        Assert.assertEquals("2020-01-25 00:00:00", date.getGregorianDate().toString());
1
2
源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getGregorianCalendar()
方法描述
获取公历的Calendar

支持版本及以上
5.6.1

参数描述:
参数名    描述
返回值:
公历Calendar

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));
        Calendar calendar = date.getGregorianCalendar();
        Assert.assertEquals("2021-05-19", DateUtil.format(DateUtil.date(calendar),"yyyy-MM-dd"));

源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getFestivals()
方法描述
获得节日

支持版本及以上
参数描述:
参数名    描述
返回值:
获得农历节日

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));
        Assert.assertEquals("春节", date.getFestivals());        

源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getChineseZodiac()
方法描述
获得年份生肖

支持版本及以上
参数描述:
参数名    描述
返回值:
获得年份生肖

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));
        Assert.assertEquals("鼠", date.getChineseZodiac());

源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getCyclical()
方法描述
获得年的天干地支

支持版本及以上
参数描述:
参数名    描述
返回值:
获得天干地支

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));
        Assert.assertEquals("庚子", date.getCyclical());

源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getCyclicalYMD()
方法描述
干支纪年信息

支持版本及以上
参数描述:
参数名    描述
返回值:
获得天干地支的年月日信息

参考案例:
        //通过公历构建
        ChineseDate chineseDate = new ChineseDate(DateUtil.parseDate("1993-01-06"));
        String cyclicalYMD = chineseDate.getCyclicalYMD();
        Assert.assertEquals("壬申年癸丑月丁亥日",cyclicalYMD);
                //通过农历构建
        ChineseDate chineseDate = new ChineseDate(1992,12,14);
        String cyclicalYMD = chineseDate.getCyclicalYMD();
        Assert.assertEquals("壬申年癸丑月丁亥日",cyclicalYMD);

源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getTerm()
方法描述
获得节气

支持版本及以上
5.6.3

参数描述:
参数名    描述
返回值:
获得节气

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));
        Assert.assertEquals("", date.getTerm());
         date = new ChineseDate(DateUtil.parseDate("2021-05-21"));
        Assert.assertEquals("小满", date.getTerm());

源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.toStringNormal()
方法描述
转换为标准的日期格式来表示农历日期,例如2020-01-13

支持版本及以上
5.2.4

参数描述:
参数名    描述
返回值:
标准的日期格式

参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));
        Assert.assertEquals("2019-12-30", date.toStringNormal());
1
源码解析:
链接:待补充
1
方法明细
方法名称:cn.hutool.core.date.ChineseDate.toString()
方法描述
支持版本及以上
参数描述:
参数名    描述
返回值:
参考案例:
        ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));
        Assert.assertEquals("辛丑牛年 四月初八", date.toString());

源码解析:
链接:待补充
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值