最近郁闷地发现网上现有的相当一部分万年历上干支纪年的算法都是错误的。因为干支纪年是针对阴历而言的,而生肖属相又跟地支对应,所以元旦和春节之间那段时间在干支纪年法中应该归上一年,以阳历2007年2月9日为例,当日的阴历日期是二〇〇六年十二月廿二日,是丙戌年,即狗年,但是浏览一下目前的万年历,相当一部分都显示成了丁亥年,猪年,比较郁闷~~

然后就写了一个阴历阳历互相转化的类。

一个阴历阳历互相转化的类(c#源码)

相关代码如下:

一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///中国日历信息实体类
一个阴历阳历互相转化的类(c#源码)
///cncxz(虫虫)2007-2-9
一个阴历阳历互相转化的类(c#源码)
///</summary>

一个阴历阳历互相转化的类(c#源码)publicsealedclassChineseCalendarInfo
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)
privateDateTimem_SolarDate;
一个阴历阳历互相转化的类(c#源码)
privateintm_LunarYear,m_LunarMonth,m_LunarDay;
一个阴历阳历互相转化的类(c#源码)
privateboolm_IsLeapMonth=false;
一个阴历阳历互相转化的类(c#源码)
privatestringm_LunarYearSexagenary=null,m_LunarYearAnimal=null;
一个阴历阳历互相转化的类(c#源码)
privatestringm_LunarYearText=null,m_LunarMonthText=null,m_LunarDayText=null;
一个阴历阳历互相转化的类(c#源码)
privatestringm_SolarWeekText=null,m_SolarConstellation=null,m_SolarBirthStone=null;
一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
构造函数#region构造函数
一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)
publicChineseCalendarInfo()
一个阴历阳历互相转化的类(c#源码):
this(DateTime.Now.Date)
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///从指定的阳历日期创建中国日历信息实体类
一个阴历阳历互相转化的类(c#源码)
///</summary>
一个阴历阳历互相转化的类(c#源码)
///<paramname="date">指定的阳历日期</param>

一个阴历阳历互相转化的类(c#源码)publicChineseCalendarInfo(DateTimedate)
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)m_SolarDate
=date;
一个阴历阳历互相转化的类(c#源码)LoadFromSolarDate();
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)
privatevoidLoadFromSolarDate()
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)m_IsLeapMonth
=false;
一个阴历阳历互相转化的类(c#源码)m_LunarYearSexagenary
=null;
一个阴历阳历互相转化的类(c#源码)m_LunarYearAnimal
=null;
一个阴历阳历互相转化的类(c#源码)m_LunarYearText
=null;
一个阴历阳历互相转化的类(c#源码)m_LunarMonthText
=null;
一个阴历阳历互相转化的类(c#源码)m_LunarDayText
=null;
一个阴历阳历互相转化的类(c#源码)m_SolarWeekText
=null;
一个阴历阳历互相转化的类(c#源码)m_SolarConstellation
=null;
一个阴历阳历互相转化的类(c#源码)m_SolarBirthStone
=null;
一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)m_LunarYear
=calendar.GetYear(m_SolarDate);
一个阴历阳历互相转化的类(c#源码)m_LunarMonth
=calendar.GetMonth(m_SolarDate);
一个阴历阳历互相转化的类(c#源码)
intleapMonth=calendar.GetLeapMonth(m_LunarYear);
一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)
if(leapMonth==m_LunarMonth)
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)m_IsLeapMonth
=true;
一个阴历阳历互相转化的类(c#源码)m_LunarMonth
-=1;
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)
elseif(leapMonth>0&&leapMonth<m_LunarMonth)
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)m_LunarMonth
-=1;
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)m_LunarDay
=calendar.GetDayOfMonth(m_SolarDate);
一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)CalcConstellation(m_SolarDate,
outm_SolarConstellation,outm_SolarBirthStone);
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)
#endregion

一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
日历属性#region日历属性
一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///阳历日期
一个阴历阳历互相转化的类(c#源码)
///</summary>

一个阴历阳历互相转化的类(c#源码)publicDateTimeSolarDate
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
get一个阴历阳历互相转化的类(c#源码){returnm_SolarDate;}
一个阴历阳历互相转化的类(c#源码)
set
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)
if(m_SolarDate.Equals(value))
一个阴历阳历互相转化的类(c#源码)
return;
一个阴历阳历互相转化的类(c#源码)m_SolarDate
=value;
一个阴历阳历互相转化的类(c#源码)LoadFromSolarDate();
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///星期几
一个阴历阳历互相转化的类(c#源码)
///</summary>

一个阴历阳历互相转化的类(c#源码)publicstringSolarWeekText
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)
get
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)
if(string.IsNullOrEmpty(m_SolarWeekText))
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)
inti=(int)m_SolarDate.DayOfWeek;
一个阴历阳历互相转化的类(c#源码)m_SolarWeekText
=ChineseWeekName[i];
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)
returnm_SolarWeekText;
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///阳历星座
一个阴历阳历互相转化的类(c#源码)
///</summary>

一个阴历阳历互相转化的类(c#源码)publicstringSolarConstellation
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
get一个阴历阳历互相转化的类(c#源码){returnm_SolarConstellation;}
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///阳历诞生石
一个阴历阳历互相转化的类(c#源码)
///</summary>

一个阴历阳历互相转化的类(c#源码)publicstringSolarBirthStone
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
get一个阴历阳历互相转化的类(c#源码){returnm_SolarBirthStone;}
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///阴历年份
一个阴历阳历互相转化的类(c#源码)
///</summary>

一个阴历阳历互相转化的类(c#源码)publicintLunarYear
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
get一个阴历阳历互相转化的类(c#源码){returnm_LunarYear;}
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///阴历月份
一个阴历阳历互相转化的类(c#源码)
///</summary>

一个阴历阳历互相转化的类(c#源码)publicintLunarMonth
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
get一个阴历阳历互相转化的类(c#源码){returnm_LunarMonth;}
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///是否阴历闰月
一个阴历阳历互相转化的类(c#源码)
///</summary>

一个阴历阳历互相转化的类(c#源码)publicboolIsLeapMonth
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
get一个阴历阳历互相转化的类(c#源码){returnm_IsLeapMonth;}
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///阴历月中日期
一个阴历阳历互相转化的类(c#源码)
///</summary>

一个阴历阳历互相转化的类(c#源码)publicintLunarDay
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
get一个阴历阳历互相转化的类(c#源码){returnm_LunarDay;}
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///阴历年干支
一个阴历阳历互相转化的类(c#源码)
///</summary>

一个阴历阳历互相转化的类(c#源码)publicstringLunarYearSexagenary
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)
get
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)
if(string.IsNullOrEmpty(m_LunarYearSexagenary))
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)
inty=calendar.GetSexagenaryYear(this.SolarDate);
一个阴历阳历互相转化的类(c#源码)m_LunarYearSexagenary
=CelestialStem.Substring((y-1)%10,1)+TerrestrialBranch.Substring((y-1)%12,1);
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)
returnm_LunarYearSexagenary;
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///阴历年生肖
一个阴历阳历互相转化的类(c#源码)
///</summary>

一个阴历阳历互相转化的类(c#源码)publicstringLunarYearAnimal
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)
get
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)
if(string.IsNullOrEmpty(m_LunarYearAnimal))
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码){
一个阴历阳历互相转化的类(c#源码)
inty=calendar.GetSexagenaryYear(this.SolarDate);
一个阴历阳历互相转化的类(c#源码)m_LunarYearAnimal
=Animals.Substring((y-1)%12,1);
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)
returnm_LunarYearAnimal;
一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)}

一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)
一个阴历阳历互相转化的类(c#源码)一个阴历阳历互相转化的类(c#源码)
/**////<summary>
一个阴历阳历互相转化的类(c#源码)
///阴历年文本

相关文章: