阳历转阴历

阳历转阴历,第1张

Excel 中阳历日期如何转换成阴历日期? 2007版的excel可用下面公式转换:

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

阳历19740820转换阴历是多少 (公历): 1974年 8月 20日

(农历): 甲寅年 七月 初三

如何在Excel中转换阴历阳历 可以啊,不过比较复杂。参看excelhome论坛:

clubexcelhome/dispbbsaspBoardID=3&ID=26011&replyID=&skin=0

下载里面的Excel附件。

可能需要注册一下。

公历和农历之间如何转换 公历,它是国际通用的。阳历 以地球绕太阳转一圈的时间定做一年,共3 65天5小时48分46秒。平年只计365天这个 整数,不计尾数;一年分做12个月,大月31 天,小月30天,二月只有28天。四年的尾 数积累起来共1天光景,加在第四年的二月 里,这一年叫做闰年。所以闰年的二月有2 9天。阴历以月亮圆缺一次的时间定做一个 月,共29天半。为了算起来方便,大月定 做30天,小月29天,一年12个月中,大小 月大体上交替排列。阴历一年只有354天左 右,也没有平年闰年的差别。 阴历不考虑地球绕太阳的运行,因此使得 四季的变化在阴历上就没有固定的时间, 它不能反映季节,这是一个很大的缺点。 为了克服这个缺点,后来人们定了一个折 衷的历,就是所谓阴阳合历。现在我国还 在使用的夏历(也有人叫它农历或阴历),就 是这种阴阳合历。它跟阴历一样,也以月 亮圆缺一次的时间定做一个月,也是大月3 0天,小月29天,可是它又用加闰月的办法 ,使得平均每年的天数跟阳历全年的天数 相接近,来调整四季。夏历约每过二、三 年多一个闰月。“阴历”又名“太阴历”,系以 月球绕行地球一周为一月,再配合地球绕 日一周之时数为一年,实际上等于阴阳合 历,我国在民国元年前采用此历,为与现 行之历相对称,故名之曰“旧历”。一般人以 为阴历适合于农家,而名之日“农历”。

在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>>

如何将农历转换为公历 是公历11月13日。这日历上有,要问怎么换的,当然公历是固定的,1、3、5、7、8、10、12月都是31天,2月28天(每4年润一次月,像2008年够4整除,润2月29天),其余的都是30天。

对于农历,它实质是阴历,沿用的是太阴历,这是一门很复杂的天文学知识。它包括24节气。

记住阳历是:1、3、5、7、8、10、腊,31天都不差,其余都是30天,除了2月28

若是闰月2月29天,只多一天。

农历转换成公历的计算公式? 因为公历(现在用的是格里历,以前还曾用儒列历)和中国农历都不是严格按一个公式计算得到的,所以两个历法没有直接的公式。

试图用一个简单的公式,而不利用许多像万年历一样的数据(尽管可以简化),就达到公农历转换的目的,这是不可能的。我们能见到的所有公农历转换的软件,都存有多少不等的一些年份的历法数据。

这些数据之中,最重要的是农历的每月天数。因为农历是阴阳历,阴历部分(按月相编的部分)决定月日,阳历部分(按太阳高度编的部分)就是节气。节气基本上是与公历直接对应的,可以较容易的推算;但月相周期与地球公转的关系相对复杂,一般都需要天文观测数据授时,所以农历每月是大月还是小月没有简单的公式。

至于公历和农历的置闰,倒都有一定的方式推算,并不困难。

如果只是天文数据,其实都还是可以算的――因为天文周期十分稳定,我们只要严格地按天文周期推算就可以了。可是还有更为麻烦的一点,就是公历和农历这些历法,并不是完全严格地按照天文上的实际周期进行的,还有许多人为的因素。最著名的就是罗马皇帝几次修改2、8等月份长短,以及儒列历中因计算不准确而人为地去掉了十天等事。中国农历也有因为古代天文观测不准确造成的 颁布的历法与天象不吻合的(我们不能苛求古人观测的精度)。所以这两部历法都是与一个时期社会有关的东西,也就没有一定的规律可循了。

农历和阳历转换有什么规律啊 没有。阳历是以地球围绕太阳公转一周的时间(即:365天5小时48分46秒,也就是3652422天)为一年,为历法方便定为365天(称为平年),舍去02骸22天,舍去的02422天,每4年累加为09688天,将近一天。因此,每四年加一天,既加在能被4整除的年份上,这一年为366天(称为闰年,即:2月份为29天),每四百年少312天,也就是少三个闰年,所以逢百年时,既要被4整除也要被400整除才为闰年。也就是我们通常所说的: 四年一闰,百年不闰,四百年再闰。

农历则是以月亮围绕地球公转一周的时间(即:平均29天12小时44分)为一个月,12个月算一年,为354天。每三年有一个闰月年,闰月年是383天或384天。19年7个闰月年。一般情况19年阳历和阴历(19被数年)能碰到一起或只差一天。

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(){ thisTheDate = (argumentslength != 3) new Date(): new Date(arguments[0], arguments[1], arguments[2]); var total, m, n, k; var isEnd = false; var tmp = thisTheDategetFullYear(); total = (tmp - 1921) 365 + Mathfloor(乏鼎催刮诎>>

阳历生日转换阴历生日 如果他今年7月9号过的是阳历生日,那就说明他是95年7月9号出生的;95年7月9号那天的阴历日期是六月十二;

今年的阴历六月十二那天的阳历日期是2014年7月8日;

今年他的阴历阳历生日仅差一天。

公历:1995年7月9日星期日巨蟹座

农历:乙亥年 六月 十二

干支:乙亥 癸未 辛丑

信息来源:华中农历网

公历:2014年7月8日星期二巨蟹座

农历:甲午年 六月 十二

干支:甲午 辛未 庚辰

信息来源:华中农历网

想在微信上收到农历生日提醒,来避免自己忘记,可以使用支持微信提醒的桌面便签提醒APP——敬业签。

2敬业签是一款支持农历提醒、重复提醒和定时提醒的便签软件,在敬业签上添加亲友的生日,设置好每年重复农历生日提醒,到达指定时间就会收到提醒。

3敬业签的提醒方式包括:窗口闪烁、消息通知、声音提醒、微信提醒。

4其中微信提醒功能需要提前在敬业签的微信公众号上绑定自己的敬业签账号,然后就能在到达指定时间时,收到微信提醒了,更加保证不会错过。

公历和农历之间如何转换 公历,它是国际通用的。阳历 以地球绕太阳转一圈的时间定做一年,共3 65天5小时48分46秒。平年只计365天这个 整数,不计尾数;一年分做12个月,大月31 天,小月30天,二月只有28天。四年的尾 数积累起来共1天光景,加在第四年的二月 里,这一年叫做闰年。所以闰年的二月有2 9天。阴历以月亮圆缺一次的时间定做一个 月,共29天半。为了算起来方便,大月定 做30天,小月29天,一年12个月中,大小 月大体上交替排列。阴历一年只有354天左 右,也没有平年闰年的差别。 阴历不考虑地球绕太阳的运行,因此使得 四季的变化在阴历上就没有固定的时间, 它不能反映季节,这是一个很大的缺点。 为了克服这个缺点,后来人们定了一个折 衷的历,就是所谓阴阳合历。现在我国还 在使用的夏历(也有人叫它农历或阴历),就 是这种阴阳合历。它跟阴历一样,也以月 亮圆缺一次的时间定做一个月,也是大月3 0天,小月29天,可是它又用加闰月的办法 ,使得平均每年的天数跟阳历全年的天数 相接近,来调整四季。夏历约每过二、三 年多一个闰月。“阴历”又名“太阴历”,系以 月球绕行地球一周为一月,再配合地球绕 日一周之时数为一年,实际上等于阴阳合 历,我国在民国元年前采用此历,为与现 行之历相对称,故名之曰“旧历”。一般人以 为阴历适合于农家,而名之日“农历”。

wps公历转农历如何 *** 作 启用菜单:格式工具栏中“公历转农历”

设置一下就可以的

如何将农历转换为公历 是公历11月13日。这日历上有,要问怎么换的,当然公历是固定的,1、3、5、7、8、10、12月都是31天,2月28天(每4年润一次月,像2008年够4整除,润2月29天),其余的都是30天。

对于农历,它实质是阴历,沿用的是太阴历,这是一门很复杂的天文学知识。它包括24节气。

记住阳历是:1、3、5、7、8、10、腊,31天都不差,其余都是30天,除了2月28

若是闰月2月29天,只多一天。

在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>>

农历和公历是怎么转换的?(怎么算的?) 你是要口算还是要用笔算?

告诉你,这样子算不靠谱的,根本算不出来,涉及到的转换不是简单的几个公式能得出,相反,它的转换相当复杂。

如果有兴趣编写程序的,我可以提供转换函数库,调用一个函数就可以实现农历与公历的互转了。

目前我已经完美地实现了转换,如果需要,我可以提供。

农历转换公历对照表 是公历1945年4月29日 星期日

农历转换成公历的计算公式? 因为公历(现在用的是格里历,以前还曾用儒列历)和中国农历都不是严格按一个公式计算得到的,所以两个历法没有直接的公式。

试图用一个简单的公式,而不利用许多像万年历一样的数据(尽管可以简化),就达到公农历转换的目的,这是不可能的。我们能见到的所有公农历转换的软件,都存有多少不等的一些年份的历法数据。

这些数据之中,最重要的是农历的每月天数。因为农历是阴阳历,阴历部分(按月相编的部分)决定月日,阳历部分(按太阳高度编的部分)就是节气。节气基本上是与公历直接对应的,可以较容易的推算;但月相周期与地球公转的关系相对复杂,一般都需要天文观测数据授时,所以农历每月是大月还是小月没有简单的公式。

至于公历和农历的置闰,倒都有一定的方式推算,并不困难。

如果只是天文数据,其实都还是可以算的――因为天文周期十分稳定,我们只要严格地按天文周期推算就可以了。可是还有更为麻烦的一点,就是公历和农历这些历法,并不是完全严格地按照天文上的实际周期进行的,还有许多人为的因素。最著名的就是罗马皇帝几次修改2、8等月份长短,以及儒列历中因计算不准确而人为地去掉了十天等事。中国农历也有因为古代天文观测不准确造成的 颁布的历法与天象不吻合的(我们不能苛求古人观测的精度)。所以这两部历法都是与一个时期社会有关的东西,也就没有一定的规律可循了。

公历农历转换 回历、公历、农历的换算

(128 × 365+31)日÷ 128年= 365.2421875日/年

可见共置闰精度远高于现代的公历。

2.换算中一日误差之订正

《历法丛谈》以回历1387年为例,求算合公历之年月日。

解1:1387 × 0.970224+621.5774=1967.278088年

0.278088年 × 365.2422日=101.569日公历累计日数为101.57日可视为4月11日或4月12日。究竟是哪一日,当依两历在公历4月11日或12日间所具有同一的星期序数以订正。

依回历岁首星期序数计算公式:

[(138-1)×131+164] ÷30=6057,余20

6057÷7=865,余 2

故回历1387年元旦为星期2。(表)

按公历自1583年元旦(星期六)至1967年4月11日,共历:

1967-1583=384年,在这384年中依格列高利历四年一闰,百年不闰,四百年加一闰日的规则共历93个闰日,又1967年元旦后一日起至4月11日又需加 100日,则

(384 × 365+93+100+6)÷ 7=140359+7=2001,余 2余2即星期2,故回历1387年元旦在公历1967年4月11日。

因公历计算星期日数采用数据较多,计算时难免有所遗漏,现引人公历日期与星期推算表阿),供参考。

应用此表查找公元1967年4月11日星期序数步骤如下:

先在本表年份表前二位数字栏目中,查到19二字所在的位置;

再在年份表后二位数字栏目中查到67二字所在位置,自19二字处平行右移,67二字处垂直下移,二者在英文大写字母栏目中相交于字母G处;

再自月份表栏目中查到4月,自4月所在位置平行左移,查到G在4月栏目所在位置;

自日期栏目查到11日所在位置,自此位置平行右移,使与4月份栏目G在星期表相交处知为星期二,结果与回历计算所得相同。故知回历 1387年元旦确为公历1967年4月11日,而不是12日。

在换算中所得公历日数常多于31日,甚至常在200―300日或更多,需要将此数化为该年的月日时,可用下列两表。

表3 公历月份及其累计日数

三 公历换算为回历

将回历换算为公历的算式移项,整理,即可得到公历换算为国历的算式

(公历纪年一621.5691)÷0.9702=回历年月日(儒略历)……………………………………………(5)

(公历纪年一621.5774)÷0.970224=回历年月日(格氏历)…………………………………………(6)

无论回历换算为公历或相反,大体都有一日之差,以星期序数订正时,回历换算为公历,以回历的星期序数为准;相反,以公历的星期序数为准。

四 国历或公历换算为中国农历

1.回历换算为农历

仅管中国农历各年在年内月数日数都不是一个相对的稳定值,给回历与公历换算为农历上带来较多的困难,但仍然可以换算。中国农历为阴阳合历,在月份上与回历同属太阴历,惟回历每月以见新月为一月之始,其日约迟于农历合朔(初一日)1―2日乃至3日,因此只要查清二者在月份上关系,便可将回历换算为中国农历。马以愚先生称:“>>

阳历19740820转换阴历是多少 (公历): 1974年 8月 20日

(农历): 甲寅年 七月 初三

Excel 中阳历日期如何转换成阴历日期? 2007版的excel可用下面公式转换:

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

public class Lunar

{

private int year;

private int month;

private int day;

private boolean leap;

final static String chineseNumber[] =

{ "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二" };

final static String Big_Or_Small[] =

{ "大", "小", "大", "小", "大", "小", "大", "大", "小", "大", "小", "大" };

private String[] LunarHolDayName =

{ "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至",

"小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪",

"冬至" };

static SimpleDateFormat chineseDateFormat = new SimpleDateFormat(

" yyyy年MM月dd日 ");

final static long[] lunarInfo = new long[]

{ 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, 0x0baa4,

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, 0da0 };

// ====== 传回农历 y年的总天数

final private static int yearDays(int y)

{

int i, sum = 348;

for (i = 0x8000; i > 0x8; i >>= 1)

{

if ((lunarInfo[y - 1900] & i) != 0)

sum += 1;

}

return (sum + leapDays(y));

}

// ====== 传回农历 y年闰月的天数

final private static int leapDays(int y)

{

if (leapMonth(y) != 0)

{

if ((lunarInfo[y - 1900] & 0x10000) != 0)

return 30;

else

return 29;

}

else

return 0;

}

// ====== 传回农历 y年闰哪个月 1-12 , 没闰传回 0

final private static int leapMonth(int y)

{

return (int) (lunarInfo[y - 1900] & 0xf);

}

// ====== 传回农历 y年m月的总天数

final private static int monthDays(int y, int m)

{

if ((lunarInfo[y - 1900] & (0x10000 >> m)) == 0)

return 29;

else

return 30;

}

// ====== 传回农历 y年的生肖

final public String animalsYear()

{

final String[] Animals = new String[]

{ "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪" };

return Animals[(year - 4) % 12];

}

// ====== 传入 月日的offset 传回干支, 0=甲子

final private static String cyclicalm(int num)

{

final String[] Gan = new String[]

{ "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸" };

final String[] Zhi = new String[]

{ "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥" };

return (Gan[num % 10] + Zhi[num % 12]);

}

// ====== 传入 offset 传回干支, 0=甲子

final public String cyclical()

{

int num = year - 1900 + 36;

return (cyclicalm(num));

}

/ /

/

传出y年m月d日对应的农历 yearCyl3:农历年与1864的相差数 monCyl4:从1900年1月31日以来,闰月数

dayCyl5:与1900年1月31日相差的天数,再加40

@param cal

@return

/

public Lunar(Calendar cal)

{

// caladd(calget(CalendarDAY_OF_MONTH),1);

@SuppressWarnings(" unused ")

int yearCyl, monCyl, dayCyl;

int leapMonth = 0;

Date baseDate = null;

try

{

baseDate = chineseDateFormatparse(" 1900年1月31日 ");

}

catch (ParseException e)

{

eprintStackTrace(); // To change body of catch statement use

// Options | File Templates

}

// 求出和1900年1月31日相差的天数

int offset = (int) ((calgetTime()getTime() - baseDategetTime()) / 86400000L);

dayCyl = offset + 40;

monCyl = 14;

// 用offset减去每农历年的天数

// 计算当天是农历第几天

// i最终结果是农历的年份

// offset是当年的第几天

int iYear, daysOfYear = 0;

for (iYear = 1900; iYear < 2050 && offset > 0; iYear++)

{

daysOfYear = yearDays(iYear);

offset -= daysOfYear;

monCyl += 12;

}

if (offset < 0)

{

offset += daysOfYear;

iYear--;

monCyl -= 12;

}

// 农历年份

year = iYear;

yearCyl = iYear - 1864;

leapMonth = leapMonth(iYear); // 闰哪个月,1-12

leap = false;

// 用当年的天数offset,逐个减去每月(农历)的天数,求出当天是本月的第几天

int iMonth, daysOfMonth = 0;

for (iMonth = 1; iMonth < 13 && offset > 0; iMonth++)

{

// 闰月

if (leapMonth > 0 && iMonth == (leapMonth + 1) && !leap)

{

--iMonth;

leap = true;

daysOfMonth = leapDays(year);

}

else

daysOfMonth = monthDays(year, iMonth);

offset -= daysOfMonth;

// 解除闰月

if (leap && iMonth == (leapMonth + 1))

leap = false;

if (!leap)

monCyl++;

}

// offset为0时,并且刚才计算的月份是闰月,要校正

if (offset == 0 && leapMonth > 0 && iMonth == leapMonth + 1)

{

if (leap)

{

leap = false;

}

else

{

leap = true;

--iMonth;

--monCyl;

}

}

// offset小于0时,也要校正

if (offset < 0)

{

offset += daysOfMonth;

--iMonth;

--monCyl;

}

month = iMonth;

day = offset + 1;

}

public static String getChinaDayString(int day)

{

String chineseTen[] =

{ "初", "十", "廿", "卅" };

int n = day % 10 == 0 9 : day % 10 - 1;

if (day > 30)

return "";

if (day == 10)

return "初十";

else

return chineseTen[day / 10] + chineseNumber[n];

}

public String toString()

{

return / cyclical() + "年" + /(leap "闰" : "")

+ chineseNumber[month - 1] + "月" + getChinaDayString(day);

}

public String numeric_md()

{// 返回阿拉伯数字的阴历日期

String temp_day;

String temp_mon;

temp_mon = month < 10 "0" + month : "" + month;

temp_day = day < 10 "0" + day : "" + day;

return temp_mon + temp_day;

}

public String get_month()

{// 返回阴历的月份

return chineseNumber[month - 1];

}

public String get_date()

{// 返回阴历的天

return getChinaDayString(day);

}

public String get_Big_Or_Small()

{// 返回的月份的大或小

return Big_Or_Small[month - 1];

}

}

万年历的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,j10+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 #include void main() { int a,i,j,n,k,t,w,x,y,z; static int d[13][78]; int m[14]={0,31,28,31,30,31,30,31,31,30,31,30,31}; char wst[]=Sun Mon Tue Wed Thu Fri Sat; puts(Please enter the year: ); scanf(%d,&y); if(y%4==0&&y%100!=0||y%400==0)闰年的二月为29天 m[2]=29; w=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7;计算y年元旦为星期w for(i=1;im[i]) break; } if(a>m[i]) break; } } puts>>

万年历19570615转换农历 这个简单,我翻了一下人生日历,是农历的1957年五月十八号,星期六,请采纳。

万年历阴历转阳历查询阴历19960815阳历是多少 19960927

只知阳历月份,不查万年历怎么换算阴历月份? 20分 这是祖先计时开始时往后累计的,阴历阳历都是一天一天加的,无法换算

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))),那就更像农历表示法了,不过因为农历每年开始日期都不一样,所以函数很难达到十分精确的结果,只能是将就着用。

想用单片机设计一个万年历,如何实现阳历到农历的转换?最好是给出思路和相关程序。 10分

万年历阴历转阳历查询1939年阴历5月初2是阳历几月几号? 阳历:1939年6月18日 星期日 农历五月初二 己卯年 庚午月 丙戌日 兔年 双子座

万年历查询程序 C语言代码 除了天数差计算,基本上是完成了你所提出的功能(天数差计算其实已经提供了年内序数计算方方法,可以在此基础上完善即可)。包含星期计算、公历转农历、农历转公历、节气查询。数据与算法均为原创,绝非网上复制而来。附件中有源代码,同时附带农历数据提取工具,可提取1600到7000年之间的任意年份区间,提取后的数据为压缩数据,占用空间小,同时数据包含数九、三伏、入梅和出梅,非常适合写一份完整的万年历。

部分核心算法函数如下:

判断闰年,参数:年份,返回值:0-平年,1-闰年int IsLeapYear(int iYear);计算日期在年内的序数,参数:年,月,日,年内序数,返回值:0-失败,1-成功int GetDaysNumInYear(int iYear, int iMonth, int iDay,int nDays);从年内序数计算月、日,参数:年,年内序数,月,日,返回值:0-失败,1-成功int GetDateFromDays(int iYear, int nDays, int iMonth, int iDay);检验年、月、日的合法性,参数:年,月,日,返回值:0-失败,1-成功int DateCheck(int iYear,int iMonth,int iDay);获取农历新年的公历年内序数,参数:农历年,返回值:农历新年的公历年内序数int LunarGetNewYearOrdinal(int iLunarYear);获取农历月的天数,参数:农历年,农历月,是否为闰月,返回值:该农历月的天数,为0代表参数无效int LunarGetDaysofMonth(int iLunarYear,int iLunarMonth,int IsLeapMonth);展开大小月数据表(某一年的),参数:农历年,从上一年十一月开始到当前年份(闰)十二月的每月天数,返回值:0-失败,1-成功int LunarExpandDX(int iLunarYear,int iDayOfMonth[15]);获取农历某一年的闰月情况,参数:农历年,返回值,该年的闰月月份,0表示无闰月int LunarGetLeapMonth(int iLunarYear);公历转农历,参数:公历年、月、日,农历年、月、日,是否为闰月,返回值:0-失败,1-成功int Gongli2Nongli(int iYear,int iMonth,int iDay,int iLunarYear,int iLunarMonth,int iLunarDay,int iIsLeapMonth);农历转公历,参数:家历年、月、日,是否为闰月,公历年、月、日,返回值:0-失败,1-成功int Nongli2Gongli(int iLunarYear,int iLunarMonth,int iLunarDay,int iIsLeapMonth,int iYear,int iMonth,int iDay);得到指定年份的节气信息,首个是小寒int GetJieQi(int iYear,int uMonth,unsigned int uJieQi[2]);计算星期unsigned int GetDayOfWeek(int iYear,int u>>

vivo手机在日历中如何进行农历与公历互换查询 都写着呢,你换她干嘛。我也是vivo换不了

新历转农历 v凉了海冷了天:你好。2013年的农历8月8。

是阳历2013年09月12日

农历实在不知道的话,我可以帮你解决。请问你需要什么样的要求?

//判断闰年,参数:年份,闰年,返回值:FALSE-失败,TRUE-成功

 BOOL IsLeapYear(WORD dwYear,BOOL &bLeapYear);

 //计算日期在年内的序数,参数:年,月,日,年内序数,返回值:FALSE-失败,TRUE-成功

 BOOL GetDaysNumInYear(WORD dwYear, WORD dwMonth, WORD dwDay,WORD &nDays);

 //从年内序数计算月、日,参数:年,年内序数,月,日,返回值:FALSE-失败,TRUE-成功

 BOOL GetDateFromDays(WORD dwYear, WORD nDays, WORD &dwMonth, WORD &dwDay);

 //获取农历新年的公历年内序数,参数:农历年,返回值:农历新年的公历年内序数

 short LunarGetNewYearOrdinal(WORD dwLunarYear);

 //获取农历月的天数,参数:农历年,农历月,是否为闰月,返回值:该农历月的天数,为0代表参数无效

 WORD LunarGetDaysofMonth(WORD dwLunarYear,WORD dwLunarMonth,BOOL bLeapMonth);

 //获取农历某一年的闰月情况,参数:农历年,返回值,该年的闰月月份,0表示无闰月

 WORD LunarGetLeapMonth(WORD dwLunarYear);

 //公历转农历,参数:公历年、月、日,农历年、月、日,是否为闰月,返回值:FALSE-失败,TRUE-成功

 BOOL GetLunar(WORD dwYear,WORD dwMonth,WORD dwDay,WORD &dwLunarYear,WORD &dwLunarMonth,WORD &dwLunarDay,BOOL &bLeapMonth);

 //农历转公历,参数:家历年、月、日,是否为闰月,公历年、月、日,返回值:FALSE-失败,TRUE-成功

 BOOL GetGregorian(WORD dwLunarYear,WORD dwLunarMonth,WORD dwLunarDay,BOOL bLeapMonth,WORD &dwYear,WORD &dwMonth,WORD &dwDay);

 //得到指定年份的节气信息,首个是小寒

 BOOL GetJieQi(WORD dwYear,WORD dwMonth,WORD dwJieQi[2]);

 //计算星期,返回-1表示输入的年月日不正确或者超出年份范围

 short GetDayOfWeek(WORD dwYear,WORD dwMonth,WORD dwDay);

 //计算某个月的天数,返回天数,如果返回0表示年或月有误

 WORD GetDaysOfMonth(WORD dwYear,WORD dwMonth);

以上列举了一些转换函数,详情请见附件的例子,虽然是C语言的,但可以参考或者直接转换成C++,有任何问题可追问或私信,保证帮你解决。

Public Function NongLi(Optional XX_DATE As Date)

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

Dim curTime, curYear, curMonth, curDay

Dim GongliStr, NongliStr, NongliDayStr

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

'获取当前系统时间

curTime = XX_DATE

'天干名称

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) = "狗"

ShuXiang(11) = "猪"

'农历日期名

DayName(0) = ""

DayName(1) = "初一"

DayName(2) = "初二"

DayName(3) = "初三"

DayName(4) = "初四"

DayName(5) = "初五"

DayName(6) = "初六"

DayName(7) = "初七"

DayName(8) = "初八"

DayName(9) = "初九"

DayName(10) = "初十"

DayName(11) = "十一"

DayName(12) = "十二"

DayName(13) = "十三"

DayName(14) = "十四"

DayName(15) = "十五"

DayName(16) = "十六"

DayName(17) = "十七"

DayName(18) = "十八"

DayName(19) = "十九"

DayName(20) = "二十"

DayName(21) = "廿一"

DayName(22) = "廿二"

DayName(23) = "廿三"

DayName(24) = "廿四"

DayName(25) = "廿五"

DayName(26) = "廿六"

DayName(27) = "廿七"

DayName(28) = "廿八"

DayName(29) = "廿九"

DayName(30) = "三十"

'农历月份名

MonName(0) = ""

MonName(1) = "正"

MonName(2) = "二"

MonName(3) = "三"

MonName(4) = "四"

MonName(5) = "五"

MonName(6) = "六"

MonName(7) = "七"

MonName(8) = "八"

MonName(9) = "九"

MonName(10) = "十"

MonName(11) = "十一"

MonName(12) = "腊"

'公历每月前面的天数

MonthAdd(0) = 0

MonthAdd(1) = 31

MonthAdd(2) = 59

MonthAdd(3) = 90

MonthAdd(4) = 120

MonthAdd(5) = 151

MonthAdd(6) = 181

MonthAdd(7) = 212

MonthAdd(8) = 243

MonthAdd(9) = 273

MonthAdd(10) = 304

MonthAdd(11) = 334

'农历数据

NongliData(0) = 2635

NongliData(1) = 333387

NongliData(2) = 1701

NongliData(3) = 1748

NongliData(4) = 267701

NongliData(5) = 694

NongliData(6) = 2391

NongliData(7) = 133423

NongliData(8) = 1175

NongliData(9) = 396438

NongliData(10) = 3402

NongliData(11) = 3749

NongliData(12) = 331177

NongliData(13) = 1453

NongliData(14) = 694

NongliData(15) = 201326

NongliData(16) = 2350

NongliData(17) = 465197

NongliData(18) = 3221

NongliData(19) = 3402

NongliData(20) = 400202

NongliData(21) = 2901

NongliData(22) = 1386

NongliData(23) = 267611

NongliData(24) = 605

NongliData(25) = 2349

NongliData(26) = 137515

NongliData(27) = 2709

NongliData(28) = 464533

NongliData(29) = 1738

NongliData(30) = 2901

NongliData(31) = 330421

NongliData(32) = 1242

NongliData(33) = 2651

NongliData(34) = 199255

NongliData(35) = 1323

NongliData(36) = 529706

NongliData(37) = 3733

NongliData(38) = 1706

NongliData(39) = 398762

NongliData(40) = 2741

NongliData(41) = 1206

NongliData(42) = 267438

NongliData(43) = 2647

NongliData(44) = 1318

NongliData(45) = 204070

NongliData(46) = 3477

NongliData(47) = 461653

NongliData(48) = 1386

NongliData(49) = 2413

NongliData(50) = 330077

NongliData(51) = 1197

NongliData(52) = 2637

NongliData(53) = 268877

NongliData(54) = 3365

NongliData(55) = 531109

NongliData(56) = 2900

NongliData(57) = 2922

NongliData(58) = 398042

NongliData(59) = 2395

NongliData(60) = 1179

NongliData(61) = 267415

NongliData(62) = 2635

NongliData(63) = 661067

NongliData(64) = 1701

NongliData(65) = 1748

NongliData(66) = 398772

NongliData(67) = 2742

NongliData(68) = 2391

NongliData(69) = 330031

NongliData(70) = 1175

NongliData(71) = 1611

NongliData(72) = 200010

NongliData(73) = 3749

NongliData(74) = 527717

NongliData(75) = 1452

NongliData(76) = 2742

NongliData(77) = 332397

NongliData(78) = 2350

NongliData(79) = 3222

NongliData(80) = 268949

NongliData(81) = 3402

NongliData(82) = 3493

NongliData(83) = 133973

NongliData(84) = 1386

NongliData(85) = 464219

NongliData(86) = 605

NongliData(87) = 2349

NongliData(88) = 334123

NongliData(89) = 2709

NongliData(90) = 2890

NongliData(91) = 267946

NongliData(92) = 2773

NongliData(93) = 592565

NongliData(94) = 1210

NongliData(95) = 2651

NongliData(96) = 395863

NongliData(97) = 1323

NongliData(98) = 2707

NongliData(99) = 265877

'生成当前公历年、月、日 ==> GongliStr

curYear = Year(curTime)

curMonth = Month(curTime)

curDay = Day(curTime)

GongliStr = curYear & "年"

If (curMonth < 10) Then

GongliStr = GongliStr & "0" & curMonth & "月"

Else

GongliStr = GongliStr & curMonth & "月"

End If

If (curDay < 10) Then

GongliStr = GongliStr & "0" & curDay & "日"

Else

GongliStr = GongliStr & curDay & "日"

End If

'计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)

TheDate = (curYear - 1921) 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38

If ((curYear Mod 4) = 0 And curMonth > 2) Then

TheDate = TheDate + 1

End If

'计算农历天干、地支、月、日

isEnd = 0

m = 0

Do

If (NongliData(m) < 4095) Then

k = 11

Else

k = 12

End If

n = k

Do

If (n < 0) Then

Exit Do

End If

'获取NongliData(m)的第n个二进制位的值

bit = NongliData(m)

For i = 1 To n Step 1

bit = Int(bit / 2)

Next

bit = bit Mod 2

If (TheDate <= 29 + bit) Then

isEnd = 1

Exit Do

End If

TheDate = TheDate - 29 - bit

n = n - 1

Loop

If (isEnd = 1) Then

Exit Do

End If

m = m + 1

Loop

curYear = 1921 + m

curMonth = k - n + 1

curDay = TheDate

If (k = 12) Then

If (curMonth = (Int(NongliData(m) / 65536) + 1)) Then

curMonth = 1 - curMonth

ElseIf (curMonth > (Int(NongliData(m) / 65536) + 1)) Then

curMonth = curMonth - 1

End If

End If

'生成农历天干、地支、属相 ==> NongliStr

NongliStr = "农历" & TianGan(((curYear - 4) Mod 60) Mod 10) & DiZhi(((curYear - 4) Mod 60) Mod 12) & "年"

NongliStr = NongliStr & "(" & ShuXiang(((curYear - 4) Mod 60) Mod 12) & ")"

'生成农历月、日 ==> NongliDayStr

If (curMonth < 1) Then

NongliDayStr = "闰" & MonName(-1 curMonth)

Else

NongliDayStr = MonName(curMonth)

End If

NongliDayStr = NongliDayStr & "月"

NongliDayStr = NongliDayStr & DayName(curDay)

NongLi = NongliStr & NongliDayStr

End Function

将上面这段代码保存在模块中,就可以用公式

=nongli(A1)

调用了。

打开快捷指令,新建,重命名为朗读屏幕。添加 *** 作,搜索等待,点击添加。

1、点击那个时间,设置为等待5秒。这里设置个等待时间,主要是为了,在遇到不知道怎么读的生僻字时,需要下滑通知栏,然后左滑找到快捷指令的小组件,点击运行,然后再回到需要朗读的页面,这个过程需要一定的时间。

2、搜索朗读,添加开始朗读屏幕,点击完成。

以上就是关于阳历转阴历全部的内容,包括:阳历转阴历、如何使用微信获取农历生日提醒、公历转农历等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9419805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存