公历农历换算及公历农历换算公式

3个月前 (05-27 04:49)阅读1回复0
xx
xx
  • 管理员
  • 注册排名6
  • 经验值325225
  • 级别管理员
  • 主题65045
  • 回复0
楼主

在日常生活中,我们经常需要将公历转换为农历或者将农历转换为公历。而这种转换需要用到公历农历换算公式。本文将介绍公历农历换算的方法以及相关公式。

一、公历农历的基本概念

公历农历换算及公历农历换算公式

公历是指以太阳年为周期的历法,是世界上通用的历法。农历是指以月亮的周期为基础的历法,是中国的传统历法。在中国,许多传统节日和纪念日都是以农历为标准来确定日期的。

二、公历农历换算的方法

1、从公历转换为农历:

我们可以通过以下步骤将公历转换为农历:

(1)确定当前日期的阳历年、月、日;

(2)查找对应的农历年、月、日;

(3)根据农历月的大小月确定当前日期是大月还是小月。

2、从农历转换为公历:

我们可以通过以下步骤将农历转换为公历:

(1)确定当前日期的农历年、月、日;

(2)查找对应的阳历年、月、日;

三、公历农历换算公式

公历年份有四位数,例如:2022年;

公历月份从1开始,到12结束;

公历日期是指阳历的日期,例如:1日、2日、3日等。

以2022年1月1日为例,公历农历换算公式为:

L = C - 1 + 4712;

M = 1;

N = 1;

if (M <= 2) {

C = C - 1;

M = M + 12;

}

if (C >= 1582 || (C == 1582 && M >= 10 && N >= 15)) {

D = 365.2425;

} else {

D = 365.25;

G = D * C + Math.floor(D * 0.75) + N + Math.floor(30.6001 * (M + 1)) + 1720996.5;

S = G - 2451545.5;

W = 29.530588853;

J = 2000.0 + (S - W) / W;

JD = Math.floor(G) - 1721119;

Y = 0;

while (JD >= 29.5) {

if (Y < 14) {

W = 29.52;

} else {

W = this.getLunarMonthDays(Y + 1900, M);

}

JD = JD - W;

Y++;

Y = Y + 1900;

L = Y;

农历年份有四位数,例如:2022年;

农历月份从1开始,到12结束;

农历日期是指阴历的日期,例如:初一、初二、初三等。

以2022年正月初一为例,农历公历换算公式为:

G = 2451545.5 + C * D + Math.floor((M - 0.5) * 30.6001) + N - 678912;

JD = G - 2451545.5;

if (JD >= 0) {

W = this.getLunarMonthDays(C, M - 1) - 29.5 + N + JD / 86400;

M = M - 1;

W = this.getLunarMonthDays(C, M) - 29.5 + N + JD / 86400;

while (W < 0) {

D = this.getLunarMonthDays(C, M - 1);

W = W + D;

if (M < 1) {

M = 12;

L = C;

四、总结

公历农历的转换对于人们的日常生活具有重要意义。通过本文所介绍的公历农历换算方法和公式,可以轻松地将公历和农历相互转换。

0
回帖

公历农历换算及公历农历换算公式 期待您的回复!

取消