萬年曆公曆農曆轉換?
萬年曆公曆陰曆計算
你這是要寫程式還是僅僅為了轉換一個日期?
寫程式的話,簡單地,用一個對照表,就可以實現公曆轉農曆,農曆轉公曆的計算了。
比如,用以下的演算法壓縮出來的資料,通過逆向計算,可以還原出這些資料,再通過這些資料來計算公曆和農曆,非常方便。
//農曆月份資訊。一年用3個位元組表示
//+-------------------------------------------------------------------------+
//| 第23位 | 第22-17位 | 第16-13位 | 第12-0位 |
//|--------+------------------------+------------+--------------------------|
//| 保留 | 農曆正月初一的年內序數 | 閏月 | 一個位元對應一個月份大小 |
//+-------------------------------------------------------------------------+
//月份大小資料是月份小的在低位,月份大的在高位,即正月在最低位。
//以1900年為例,3個位元組的資料展開成二進位制位:
// 0 011110 1000 1 0 1 1 0 1 1 0 1 0 0 1 0
//保留 1月31日(春節) 閏八月 從左往右依次十二月,十一月……閏八月、八月、七月……正月的天數
//農曆月份對應的位為0,表示這個月為29天(小月),為1表示有30天(大月)。
以上演算法附帶C/C++原始碼都在連結:pan.baidu.com/s/1qY9ysBM 密碼:zu7m
這演算法效果還是非常不錯的,如果覺得還是不夠的,我這裡還有Excel外掛,以及一個C++版本的庫,查詢更方便。
萬年曆19570615轉換農曆
這個簡單,我翻了一下人生日曆,是農曆的1957年五月十八號,星期六,請採納。
萬年曆的c語言程式程式碼包括節假日農曆,農曆轉公曆,公曆農曆查詢某
/* 多格式萬年曆 1.問題 設計程式實現多規格列印萬年曆,要求每一橫排列印x個月 整數x可取1,2,3,4,6五個選項 2.設計思路 設定兩個陣列:一維m陣列存放月份的天數,如m(8)=31,即8月份為31天 二維d陣列存放日號,如d(3,24)=11,即3月份第2個星期的星期4為11號 其中24分解為十位數字2與個位數字4,巧妙地利用二維陣列存放了三維資訊 輸入年號y,m陣列資料通過賦值完成。根據曆法規定,平年二月份為28天; 若年號能被4整除且不被100整除,或能被400整除,該年為閏年,二月份為29天 則必須把m(2)改為29. 同時,根據曆法,設y年元旦是星期w(取值0-6,0為星期日),整數w的計算公式為 w={y+[(y-1)/4]-[(y-1)/100]+[(y-1)/400]}%7 []為取整。 元旦以後 ,每增加一天,w增1,當w=7時改為w=0即可。 設定三重迴圈i、j、k為d陣列的d(i,j*10+k)賦值。i:1-12,表示月份號;j:1-60 表示每個月約定最多6個星期;k;0-6,表示星期k。從元旦的a=1開始,每賦一個元素, a增1,同時w=k+1。當w=7時,w=0(為星期日)。當a>m(i)時,終止第i月的賦值操作。 輸入格式引數x(1,2,3,4,6),設定4重迴圈控制規格列印: n迴圈,n:1-12/x,控制列印12/x段(每一段x個月)。、 j迴圈,j:1-6,控制列印每月的6個星期(6行)。 i迴圈,i:t--t+x-1,控制列印每行x個月(從第t個月至t+x-1月,t=x(n-1)+1). k迴圈,k:0-6,控制列印每個星期的7天。 */ #include
萬年曆公曆農曆查詢
可以相互切換的
農曆轉換成公曆的計算公式?
因為公曆(現在用的是格里曆,以前還曾用儒列歷)和中國農曆都不是嚴格按一個公式計算得到的,所以兩個曆法沒有直接的公式。
試圖用一個簡單的公式,而不利用許多像萬年曆一樣的資料(儘管可以簡化),就達到公農曆轉換的目的,這是不可能的。我們能見到的所有公農曆轉換的軟體,都存有多少不等的一些年份的歷法資料。
這些資料之中,最重要的是農曆的每月天數。因為農曆是陰陽曆,陰曆部分(按月相編的部分)決定月日,陽曆部分(按太陽高度編的部分)就是節氣。節氣基本上是與公曆直接對應的,可以較容易的推算;但月相週期與地球公轉的關係相對複雜,一般都需要天文觀測資料授時,所以農曆每月是大月還是小月沒有簡單的公式。
至於公曆和農曆的置閏,倒都有一定的方式推算,並不困難。
如果只是天文資料,其實都還是可以算的——因為天文週期十分穩定,我們只要嚴格地按天文週期推算就可以了。可是還有更為麻煩的一點,就是公曆和農曆這些曆法,並不是完全嚴格地按照天文上的實際週期進行的,還有許多人為的因素。最著名的就是羅馬皇帝幾次修改2、8等月份長短,以及儒列歷中因計算不準確而人為地去掉了十天等事。中國農曆也有因為古代天文觀測不準確造成的政府頒佈的歷法與天象不吻合的(我們不能苛求古人觀測的精度)。所以這兩部曆法都是與一個時期社會有關的東西,也就沒有一定的規律可循了。
農曆日期和公曆日期怎麼轉換,
我做計算器的,這個就是轉化,你看哈嘛!
//將日期換算為公曆的天數
private int toJulian(){
int jy=year;
if(year<0)
jy++;
int jm=month;
if(month>2)
jm++;
else{
jy--;
jm+=13;
}
int jul=(int)(java.lang.Math.floor(365.25*jy)
+java.lang.Math.floor(30.6001*jm)+day+1720995.0);
int IGREG=15+31*(10+12*year);
if(day+31*(month+12*year)>=IGREG){
int ja=(int)(0.01*jy);
jul+=2-ja+(int)(0.25*ja);
}
return jul;
}
//從具體的天數得到日期
private void formJulian(int j){
int ja=j;
int JGREG=2299161;
if(j>=JGREG){
int jalpha=(int)(((float)(j-1867216)-0.25)/36524.25);
ja+=1+jalpha-(int)(0.25*jalpha);
}
int jb=ja+1524;;
int jc=(int)(6680.0+((float)(jb-2439870)-122.1)/365.25);
int jd=(int)(362*jc+(0.25*jc));
int je=(int)((jb-jd)/30.6001);
day=jb-jd-(int)(30.6001*je);
month=je-1;
if(month>12)
month -=12;
year=jc-4715;
if(month>2)
--year;
if(year<=0)
--year;
}
private int day;
private int month;
private int year;
農曆轉換成公曆:知道一個農曆日子,怎麼計算每年對應的公曆日子
很遺憾,你只能去查萬年曆。因為公曆(現在用的是格里曆,以前還曾用儒列歷)和中國農曆都不是嚴格按一個公式計算得到的,所以兩個曆法沒有直接的公式。 試圖用一個簡單的公式,而不利用許多像萬年曆一樣的資料(儘管可以簡化),就達到公農曆轉換的目的,這是不可能的。我們能見到的所有公農曆轉換的軟體,都存有多少不等的一些年份的歷法資料。
如果只是天文資料,其實都還是可以算的——因為天文週期十分穩定,我們只要嚴格地按天文週期福算就可以了。可是還有更為麻煩的一點,就是公曆和農曆這些曆法,並不是完全嚴格地按照天文上的實際週期進行的,還有許多人為的因素。最著名的就是羅馬皇帝幾次修改2、8等月份長短,以及儒列歷中因計算不準確而人為地去掉了十天等事。中國農曆也有因為古代天文觀測不準確造成的政府頒佈的歷法與天象不吻合的(我們不能苛求古人觀測的精度)。所以這兩部曆法都是與一個時期社會有關的東西,也就沒有一定的規律可循了。
excel如何農曆轉換陽曆公式
比如今天是2010年9月2日,用以下公式就可以得出農曆七月二十四:
雖然在遇到閏月時,顯示結果有點差強人意,如下圖中,2010年2月9日的農曆應是十二月二十六,但因為那年有個閏五月,就無辜多出來一個月了。不過總比編程式碼要快捷多了吧,而且閏月也不是天天有。
假如把公式改成:=MID("甲乙丙丁戊己庚辛壬癸",MOD(TEXT(A2,"[$-130000]e")-4,10)+1,1)&MID("子醜寅卯辰巳午未申酉戌亥",MOD(TEXT(A2,"[$-130000]e")-4,12)+1,1)&"年"&TEXT(A2,"[$-130000][DBNum1]m月")&TEXT(A2,IF(--TEXT(A2,"[$-130000]d")=10,"初十",IF(--TEXT(A2,"[$-130000]d")>10,"[$-130000][DBNum1]d","初[$-130000][DBNum1]d"))),那就更像農曆表示法了,不過因為農曆每年開始日期都不一樣,所以函式很難達到十分精確的結果,只能是將就著用。
只知陽曆月份,不查萬年曆怎麼換算陰曆月份? 20分
這是祖先計時開始時往後累計的,陰曆陽曆都是一天一天加的,無法換算