世界上的历法共有三类
-
阳历,就是以地球绕太阳运转一圈的时间为一年,年的月数和月的日数可人为规定;又称为公历。
-
阴历,就是以月球绕地球运转一圈的时间为一个月,只有年的月数可以人为规定;(已改进为阴阳历)
-
阴阳历,就是以月球平均绕地球转一圈的时间为一月,但通过设置闰月,使一年的平均天数又与地球平均绕太阳转一圈的时间相等,又称农历。(农历是以阴历为基础,融合阳历成分而形成的一种历法。)
阴历是中国传统历法之一,也被称为旧历、汉历、古历等,辛亥革命后改用西方太阳历(公历),而现代叫法的农历属于阴阳合历。
农历是阴历。农历是我国传统历法,又有阴历、华历、夏历、汉历、中历等名称,但农历并不是阴历而是一种阴阳合历,取月相的变化周期即朔望月为月的长度,参考太阳回归年为年的长度,通过设置二十四节气以及闰月以使平均历年与回归年相适应。
闰月和闰年有什么区别?
- 闰年是公历的名词。公历规定每400年97闰,不逢百的年份能被4整除的,就是闰年,这一年的2月是29天;其余年份的2月是28天。除了2月以外,其它月份的天数没有平年和闰年的区别。
闰年是固定的,也就是能被4整除的年就是闰年,每四年一次,闰年比平年多一天,也就是366天。
- 闰月是中国的农历的名词。农历因为是阴阳历,所以要兼顾月亮和太阳。由于每个月都要保证十五或者十六是满月,所以每个月大约是29.5天。一般年份12个月就只有355天。这样一年年累计下来,会和季节脱节(因为地球公转周期是365天)。所以每三年左右要加一个月,使得农历年在长期平均上与公历年的长度一致,大约是365.2425天。加的这一个月就叫做闰月。农历的闰月大概是十九年七闰。
闰月指的是阴历,每隔3年(有的可能多)就有一个闰月,有闰月的阴历每年大概是384天。
列举近年的闰年闰月时间
年份 | 生肖 | 公历闰年 | 总天数 | 农历闰月 | 闰月天数 | 总天数 |
---|---|---|---|---|---|---|
1990 | 马 | 365 | 闰五月 | 29 | 384 | |
1991 | 羊 | 365 | 354 | |||
1992 | 猴 | 闰年 | 366 | 354 | ||
1993 | 鸡 | 365 | 闰三月 | 29 | 383 | |
1994 | 狗 | 365 | 355 | |||
1995 | 猪 | 365 | 闰八月 | 29 | 384 | |
1996 | 鼠 | 闰年 | 366 | 354 | ||
1997 | 牛 | 365 | 355 | |||
1998 | 虎 | 365 | 闰五月 | 29 | 384 | |
1999 | 兔 | 365 | 354 | |||
2000 | 龙 | 闰年 | 366 | 354 | ||
2001 | 蛇 | 365 | 闰四月 | 29 | 384 | |
2002 | 马 | 365 | 354 | |||
2003 | 羊 | 365 | 355 | |||
2004 | 猴 | 闰年 | 366 | 闰二月 | 29 | 384 |
2005 | 鸡 | 365 | 354 | |||
2006 | 狗 | 365 | 闰七月 | 29 | 385 | |
2007 | 猪 | 365 | 354 | |||
2008 | 鼠 | 闰年 | 366 | 354 | ||
2009 | 牛 | 365 | 闰五月 | 29 | 384 | |
2010 | 虎 | 365 | 354 | |||
2011 | 兔 | 365 | 354 | |||
2012 | 龙 | 闰年 | 366 | 闰四月 | 29 | 384 |
2013 | 蛇 | 365 | 355 | |||
2014 | 马 | 365 | 闰九月 | 29 | 384 | |
2015 | 羊 | 365 | 354 | |||
2016 | 猴 | 闰年 | 366 | 355 | ||
2017 | 鸡 | 365 | 闰六月 | 30 | 384 | |
2018 | 狗 | 365 | 354 | |||
2019 | 猪 | 365 | 354 | |||
2020 | 鼠 | 闰年 | 366 | 闰四月 | 29 | 384 |
2021 | 牛 | 365 | 354 | |||
2022 | 虎 | 365 | 355 | |||
2023 | 兔 | 365 | 闰二月 | 29 | 384 | |
2024 | 龙 | 闰年 | 366 | 354 | ||
2025 | 蛇 | 365 | 闰六月 | 29 | 384 | |
2026 | 马 | 365 | 354 | |||
2027 | 羊 | 365 | 354 | |||
2028 | 猴 | 闰年 | 366 | 闰五月 | 29 | 384 |
Java闰年闰月的计算方法
引入依赖:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.5</version>
</dependency>
Java代码:
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.chinese.LunarInfo;
public class ChineseMonth {
private static final String[] MONTH_NAME = {"正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "腊"};
public static void main(String[] args) {
for (int year = 1990; year < 2029; year++) {
// 生肖
String zodiac = DateUtil.getChineseZodiac(year);
// 公历闰年
String leapYear = DateUtil.isLeapYear(year) ? "闰年" : "";
String yearDays = DateUtil.lengthOfYear(year) + "";
// 农历闰月
int month = LunarInfo.leapMonth(year);
String chineseMonthName = month > 0 ? "闰" + MONTH_NAME[month - 1] + "月" : "";
String chineseMonthDays = month > 0 ? LunarInfo.leapDays(year) + "" : "";
String chineseyearDays = LunarInfo.yearDays(year) + "";
System.out.println("|" + year + "|" + zodiac + "|" + leapYear + "|" + yearDays + "|" + chineseMonthName + "|" + chineseMonthDays + "|" + chineseyearDays);
}
}
}
标签:公历,闰年,29,354,384,闰月,365
From: https://www.cnblogs.com/zhaojinhui/p/17025030.html