阳历转阴历算法
试图用一个简单的公式,而不像万年历那样使用很多数据(虽然可以简化)来达到公、农历转换的目的,是不可能的。所有我们能看到的把公历转换成阴历的软件都包含了不同年份的历法数据。
在这些数据中,最重要的是农历每个月的天数。因为农历是阴历,阴历的部分(根据月亮的相位)决定了一个月中的某一天,阳历的部分(根据太阳的高度)就是节气。节气基本上直接对应公历,很容易计算;而月相周期与地球公转的关系相对复杂,一般需要天文观测数据给出时间,所以一个太阴月是大月还是小月没有简单的公式。
至于公历和农历的闰,有一定的计算方法,并不难。
如果只是天文数据,还是可以统计的——因为天文周期很稳定,我们只需要严格按照天文周期来计算就可以了。但是还有一个比较麻烦的点,就是阳历和阴历没有严格按照实际的天文周期进行,人为因素比较多。最著名的是罗马皇帝多次修改二月和八月的长度,由于计算不准确,十日被人为地从儒略历中删除。在中国,* * *公布的历法与天象不符是因为古代天文观测不准确(我们不能苛求古代观测的准确性)。所以这两个历法都和一个时期的社会有关,所以没有一定的规律可循。
农历转换为公历的对照表是公历1945年4月29日星期日。
农历和公历是怎么换算的?(怎么算?)是用嘴算还是用笔算?
我告诉你,这个不靠谱,根本算不出来,涉及的变换也不是简单的公式。相反,它的转变是相当复杂的。
如果你对写程序感兴趣,我可以提供一个转换函数库,你可以通过调用一个函数来实现农历和公历之间的转换。
目前我已经完美实现了转化,有需要可以提供。
日期换算成农历的算法是什么?excel阳历转阴历方法一:使用文本函数。A列是公历日期,我们在单元格B1中输入公式:= text (A1,[$-130000] YYY年M月&;If (len (-text (a1,[$-130000] DD)) = 1,Chu,)&;d),下拉完成公历到农历的转换。
excel如何从农历转换阳历公式?比如今天是2010年9月2日,用下面的公式可以得到农历的7月24日:
虽然遇到闰月的时候结果有点不理想,如下图,农历2010年2月9日应该是12月26日,但是因为当年有闰五月,所以多了一个无辜的月份。但是比编码快多了,闰月也不是每天都有。
如果公式改为=MID(甲基、乙基、丙基、丁基、己基、辛基、非十一烷基、mod (text (a2,[$-130000] e)-4,10)+1)&;MID(子丑毛寅辰巳中午求信),mod (text (a2,[$-130000] e)-4,12)+1,1)&;year & Text(a2,[$-130000][DBM num 1]m month)&;Text (A2,if (-text (A2,[$-130000] d) = 10,第十天,if (-text (A2,[$-130000] d) > 10,[$-130000][dbnum 1]d,Chu[$-13000][dbnum 654440
阳历转阴历算法的实现下面是一个关于VB的阴历算法。
日期数据定义如下
前12字节代表1-12是大月或小月,1是30天的大月,0是29天的小月;
13是闰月,1是30天的大月,0是29天的小月;
第14位是闰月的月份。如果不是闰月,则为0,否则给出月份。10、11、12分别用A、B、C表示,即使用16的基础体系。
后四位是当年农历新年的日期——即公历65438+10月1的日期,例如0131代表65438+10月31。
函数getchgdate (byval v date为字符串,byval chg type为转换模式)为字符串。
dim vvdate()As String = Split(vDate,-)
如果vvdate(0)> 0;2011或vvdate(0)>
如何计算农历和阳历的换算公式
1,阳历日期计算阴历日期的方法:
如前所述,农历的日期以满月为准,以每一次新月为初一,满月为十五(大月十六),暗月为二十九(大月三十)。
如果你想知道6月8日是什么日子,1984?我们可以用公式计算农历的日期:比如说:年数-1977(或1901) = 4q+R。
那么:农历日期= 14q+10.6(r+1)+一年的日期序数-29.5n(注:公式中,q、r、n均为自然数,r >;
如何在EXCEL中把公历转换成农历dimweek名称(7)、月加(11)、nonglidata (99)、天干(9)、地支(11)、书香(165438)?
Dim curTime、curYear、curMonth、curDay、curWeekday
Dim GongliStr,WeekdayStr,NongliStr,NongliDayStr
Dim i,m,n,k,isEnd,bit,TheDate
私有子窗体_Load()
获取当前系统时间
curTime = Now()
本周名称
WeekName(0) = *
星期名称(1) =星期日
WeekName(2) =星期一
WeekName(3) =星期二
WeekName(4) =星期三
WeekName(5) =星期四
WeekName(6) =星期五
WeekName(7) =星期六
天干名
天干(0) = A。
天干(1) = B。
天干(2) =丙。
天干(3) = d
天干(4) = E
天干(5) =自性
天干(6) =庚
天干(7) =辛
天干(8) =壬
天干(9) =癸
地支名称
DiZhi(0) = child
狄志(1) =丑
地直(2) =阴
邸志③=毛
狄志(4) =陈
地直(5) = Si
地直(6) =正午
狄志(7) =不
狄志(8) =沈
地直(9) =酉
地直(10) = 0
狄志(11) =海
动物星座名称
书香(0) =鼠标
书香(1) =牛
书香(2) =老虎
书香(3) =兔子
书香(4) =龙
书香(5) =蛇
书香(6) =马
书香(7) =羊
书香(8) =猴
书香(9) =鸡
书香(10)= & amp;q......& gt& gt
如何将农历换算成阳历,求算法int lunarInfo[]={/*农历数据*/
0x04bd8,0x04ae0,0570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,
0x04ae0,05b6,04d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0da2,0x095b0,0x14977,
0x04970,04b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,
0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,
0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0950,0x0b557,
0x06ca0,0x0b550,0x15355,0x04da0,05d0,0x14573,0x052d0,09a8,0x0e950,0x06aa0,
0ea6,0b50,0x04b60,0ae4,0570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,
0x096d0,0x04dd5,0x04ad0,04d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,
0x095b0,0x049b0,0974,04b0,0x0b27a,0x06a50,0x06d40,0f46,0b60,0x09570,
0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0b60,0x096d5,0x092e0,
0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0bb7,0x025d0,0x092d0,0x0cab5,
0950,0x0b4a0,0x 0ba 4,0d50,0x055d9,0x04ba0,05b0,0x15176,0x052b0,0930,
0x07954,0x06aa0,0d50,0x05b52,0x04b60,06e6,04e0,0x0d260,0x0ea65,0x0d530,
0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,04d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,
0x0b5a0,0x056d0,0x055b2,0x049b0,0577,04b0,0a50,0x1b255,0x06d20,0da 0 };
int solarMonth[]={31,28,31,30,31,30,31,30,31,30,31 };
-
int y yeardays(int y){
int i,sum = 348
for(I = 0x 8000;我& gt0x8我& gt& gt= 1)sum+=(lunarInfo[y-190......& gt& gt