陽曆轉公曆?

General 更新 2024年12月25日

電子表格中怎樣將農曆轉換為公曆

1、農曆轉換為公曆,首先需要一個農曆和公曆的對照表

2、假設對照表的格式為:A列為農曆,B列為公曆。

3、此時可以用VLOOKUP函式進行轉換,公式為:=VLO暢KUP(需要轉換的農曆日期,A:B,2,0)

4、特別注意:需要轉換的農曆日期必須與對照表中A列格式一致。

Excel 中陽曆日期如何轉換成陰曆日期?

2007版的excel可用下面公式轉換:

=TEXT(A1,"[$-130000]yyyy年m月"&IF(LEN(--TEXT(A1,"[$-130000]dd"))=1,"初","")&"d")

贊助廣告

在excel中怎樣制公曆和轉換成農曆

轉換公司太複雜了,樓主可以做一個公曆和農曆對照表,直接引用即可,我就是這樣做的。

搜尋陰陽曆對照,有一個網站上就有,從1921年到2019年,你把它複製到excel表格裡面就行

在EXCEL中怎樣把公曆轉換成農曆

Dim WeekName(7), MonthAdd(11), NongliData(99), TianGan(9), DiZhi(11), ShuXiang(11), DayName(30), MonName(12)

Dim curTime, curYear, curMonth, curDay, curWeekday

贊助廣告

Dim GongliStr, WeekdayStr, NongliStr, NongliDayStr

Dim i, m, n, k, isEnd, bit, TheDate

Private Sub Form_Load()

'獲取當前系統時間

curTime = Now()

'星期名

WeekName(0) = " * "

WeekName(1) = "星期日"

WeekName(2) = "星期一"

WeekName(3) = "星期二"

WeekName(4) = "星期三"

WeekName(5) = "星期四"

WeekName(6) = "星期五"

WeekName(7) = "星期六"

'天干名稱

TianGan(0) = "甲"

TianGan(1) = "乙"

TianGan(2) = "丙"

TianGan(3) = "丁"

TianGan(4) = "戊"

TianGan(5) = "己"

TianGan(6) = "庚"

TianGan(7) = "辛"

TianGan(8) = "壬"

TianGan(9) = "癸"

'地支名稱

DiZhi(0) = "子"

DiZhi(1) = "醜"

DiZhi(2) = "寅"

DiZhi(3) = "卯"

DiZhi(4) = "辰"

DiZhi(5) = "巳"

DiZhi(6) = "午"

DiZhi(7) = "未"

DiZhi(8) = "申"

DiZhi(9) = "酉"

DiZhi(10) = "戌"

DiZhi(11) = "亥"

'屬相名稱

ShuXiang(0) = "鼠"

ShuXiang(1) = "牛"

ShuXiang(2) = "虎"

ShuXiang(3) = "兔"

ShuXiang(4) = "龍"

ShuXiang(5) = "蛇"

ShuXiang(6) = "馬"

ShuXiang(7) = "羊"

ShuXiang(8) = "猴"

ShuXiang(9) = "雞"

ShuXiang(10) = &q......餘下全文>>

農曆轉換成公曆的計算公式?

因為公曆(現在用的是格里曆,以前還曾用儒列歷)和中國農曆都不是嚴格按一個公式計算得到的,所以兩個曆法沒有直接的公式。

試圖用一個簡單的公式,而不利用許多像萬年曆一樣的資料(儘管可以簡化),就達到公農曆轉換的目的,這是不可能的。我們能見到的所有公農曆轉換的軟體,都存有多少不等的一些年份的歷法資料。

這些資料之中,最重要的是農曆的每月天數。因為農曆是陰陽曆,陰曆部分(按月相編的部分)決定月日,陽曆部分(按太陽高度編的部分)就是節氣。節氣基本上是與公曆直接對應的,可以較容易的推算;但月相週期與地球公轉的關係相對複雜,一般都需要天文觀測資料授時,所以農曆每月是大月還是小月沒有簡單的公式。

至於公曆和農曆的置閏,倒都有一定的方式推算,並不困難。

如果只是天文資料,其實都還是可以算的——因為天文週期十分穩定,我們只要嚴格地按天文週期推算就可以了。可是還有更為麻煩的一點,就是公曆和農曆這些曆法,並不是完全嚴格地按照天文上的實際週期進行的,還有許多人為的因素。最著名的就是羅馬皇帝幾次修改2、8等月份長短,以及儒列歷中因計算不準確而人為地去掉了十天等事。中國農曆也有因為古代天文觀測不準確造成的政府頒佈的歷法與天象不吻合的(我們不能苛求古人觀測的精度)。所以這兩部曆法都是與一個時期社會有關的東西,也就沒有一定的規律可循了。

c++中怎樣將陽曆轉化成農曆

一、 原理篇

1. 公曆轉換農曆的演算法

公曆(Gregorian Calendar)與農曆(Chinese Lunar Calendar)的轉換關係不是一個簡單的公式就可以完成,其中的轉換比較複雜,原因是農曆的制定相當複雜,是根據天文觀測進行指定的。

比較常用並且比較簡單的公曆轉換農曆演算法就是查表方法。首先要儲存公曆農曆的轉換資訊:以任何一年作為起點,把從這一年起若干年的農曆資訊儲存起來(在我的C++類中,是從1900年作為起點的。選擇一個起始點的思想十分重要,在下面的干支紀法和二十四節氣中也體現到了)。回想一下,我們平時是怎樣來轉換公曆農曆的呢?是查閱歷書,曆書中有每一天的公曆農曆,直接一查就可以了。那麼我們可不可以也這樣做呢?當然可以,但是這樣做要收錄每一天的資訊,工作量就會很大,所以我們要簡化這些資訊。如何簡化呢?

要儲存一年的資訊,其實只要兩個資訊就可以了:(1)農曆每個月的大小;(2)今年是否有閏月,閏幾月以及閏月的大小。用一個整數來儲存這些資訊就足夠了。具體的方法是:用一位來表示一個月的大小,大月記為1,小月記為0,這樣就用掉了12位,再用低四位來表示閏月的月份,沒有閏月記為0。比如說,2000年的資訊資料是0x0c960,轉化成二進位制就是1100100101100000,表示的含義是1、2、5、8、10、11月大,其餘月小,低四位為0說明沒有閏月。2001年的農曆資訊資料是0x0d954,其中的4表示該年閏4月,月份大小資訊就是0x0d95,具體的就是1、2、4、5、8、10、12月大,其餘月小。這樣就可以用一個數組來儲存這些資訊。在我的C++類中是用m_lunarInfo這個陣列來儲存這些資訊的。

下面就是公曆轉換成農曆的具體演算法:

(1) 計算所求時間到起始年正月初一的天數。

(2) 從起始年份開始,減去每一月的天數,一直到剩餘天數沒有下一個月多為止。此時,m_lunarInfo的下標到了多少,就是減去了多少年,用起始年份加上這個下標就可以得到農曆年份,然後看減去了幾個月。如果本年不閏月或者閏月還在後面,就可以直接得到農曆月份,如果在閏月月份數後面一個月,則這個月就是閏月。剩餘的天數就是農曆日。(具體實現時有所改進。)

2. 利於泰勒公式巧算星期

在應用數學中有一個計算某一天是星期幾的公式,這就是泰勒公式。公式如下:w = [c÷4] - 2c + y + [y÷4] + [26(m+1)÷10] + d - 1,其中w就是所求日期的星期數。如果求得的數大於(小於)7,就減去(加上)7的倍數,直到餘數小於7為止。式子中c是指公元年份的前兩位數字,y是後兩位數字,m是月數,d是日數。方括弧[]表示對於括號中的數字取整。還有一個特別要注意的地方:所求的月份如果是1月或2月,則應視為上一年的13月或14月,也就是公式中m的取值範圍是從3到14而不是從1到12。

3. 干支紀法

天干有十個,就是甲、乙、丙、丁、戊、己、庚、辛、壬、癸,地支有十二個,依次是子、醜、寅、卯、辰、巳、午、未、申、酉、戌、亥。古人把它們按照一定的順序而不重複地搭配起來,從甲子到癸亥共六十對,叫做六十甲子。我國古人用這六十對干支來表示年、月、日、時的序號,周而復始,不斷迴圈,這就是干支紀法。

0甲子

1乙丑

2丙寅

3丁卯

4戊辰

5己已

6庚午

7辛未

8壬申

9癸酉10甲戌

11乙亥

12丙子

13丁丑

14戊寅

15己卯

16庚辰

17辛已

18壬午

19癸未20甲申

21乙酉

22丙戌

23丁亥

24戊子

25己丑

26庚寅

......餘下全文>>

javascript陽曆轉陰曆方法?

我這裡剛好有這個演算法程式碼,請看:

var LunarDate = { madd: new Array(0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334), HsString: '甲乙丙丁戊己庚辛壬癸', EbString: '子醜寅卯辰巳午未申酉戌亥', NumString: "一二三四五六七八九十", MonString: "正二三四五六七八九十冬臘", CalendarData: new Array(0xA4B, 0x5164B, 0x6A5, 0x6D4, 0x415B5, 0x2B6, 0x957, 0x2092F, 0x497, 0x60C96, 0xD4A, 0xEA5, 0x50DA9, 0x5AD, 0x2B6, 0x3126E, 0x92E, 0x7192D, 0xC95, 0xD4A, 0x61B4A, 0xB55, 0x56A, 0x4155B, 0x25D, 0x92D, 0x2192B, 0xA95, 0x71695, 0x6CA, 0xB55, 0x50AB5, 0x4DA, 0xA5B, 0x30A57, 0x52B, 0x8152A, 0xE95, 0x6AA, 0x615AA, 0xAB5, 0x4B6, 0x414AE, 0xA57, 0x526, 0x31D26, 0xD95, 0x70B55, 0x56A, 0x96D, 0x5095D, 0x4AD, 0xA4D, 0x41A4D, 0xD25, 0x81AA5, 0xB54, 0xB6A, 0x612DA, 0x95B, 0x49B, 0x41497, 0xA4B, 0xA164B, 0x6A5, 0x6D4, 0x615B4, 0xAB6, 0x957, 0x5092F, 0x497, 0x64B, 0x30D4A, 0xEA5, 0x80D65, 0x5AC, 0xAB6, 0x5126D, 0x92E, 0xC96, 0x41A95, 0xD4A, 0xDA5, 0x20B55, 0x56A, 0x7155B, 0x25D, 0x92D, 0x5192B, 0xA95, 0xB4A, 0x416AA, 0xAD5, 0x90AB5, 0x4BA, 0xA5B, 0x60A57, 0x52B, 0xA93, 0x40E95), Year: null, Month: null, Day: null, TheDate: null, GetBit: function(m, n){ return (m >> n) & 1; }, e2c: function(){ this.TheDate = (arguments.length != 3) ? new Date(): new Date(arguments[0], arguments[1], arguments[2]); var total, m, n, k; var isEnd = false; var tmp = this.TheDate.getFullYear(); total = (tmp - 1921) * 365 + Math.floor(乏鼎催刮詘......餘下全文>>

相關問題答案
陽曆轉公曆?
星座日期農曆轉公曆?
農曆轉公曆星座查詢?
農曆轉公曆生日查詢?
農曆轉公曆查詢?
陽曆轉陰曆公式?
萬年曆陽曆轉農曆查詢?
陽曆轉農曆星座查詢表?
陽曆是公曆還是農曆?
陽曆轉農曆查詢?