📄 csdn_文档中心_公历转农历(c版本).htm
字号:
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>标题</FONT></TD>
<TD><B> 公历转农历(C版本)</B> 3661512(原作)
</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399><FONT color=#ffffff>关键字</FONT></TD>
<TD width=500> 公历 农历 转换</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR></TBODY></TABLE><!--文章说明信息结束//-->
<TABLE border=0 width=600>
<TBODY>
<TR>
<TD align=left><BR>
<P>
前段时间做软件写了个公历转农历的函数,目前公开给大家参考,有兴趣的朋友可以在此基础上进一步完善其功能</P>
<P>/*------------农历转换函数-----------*/<BR>char *GetDayOf(PSYSTEMTIME
pSt)<BR>{ <BR> /*天干名称*/<BR> const char *cTianGan[] =
{"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};<BR> /*地支名称*/<BR> const
char *cDiZhi[] =
{"子","丑","寅","卯","辰","巳","午",<BR> "未","申","酉","戌","亥"};<BR> /*属相名称*/<BR> const
char *cShuXiang[] =
{"鼠","牛","虎","兔","龙","蛇",<BR> "马","羊","猴","鸡","狗","猪"};<BR> /*农历日期名*/<BR> const
char *cDayName[] =
{"*","初一","初二","初三","初四","初五",<BR> "初六","初七","初八","初九","初十",<BR> "十一","十二","十三","十四","十五",<BR> "十六","十七","十八","十九","二十",<BR>
"廿一","廿二","廿三","廿四","廿五",
<BR>
"廿六","廿七","廿八","廿九","三十"};<BR> /*农历月份名*/<BR> const char
*cMonName[] =
{"*","正","二","三","四","五","六",<BR> "七","八","九","十","十一","腊"};</P>
<P> /*公历每月前面的天数*/<BR> const int wMonthAdd[12] =
{0,31,59,90,120,151,181,212,243,273,304,334};<BR> /*农历数据*/<BR> const
int wNongliData[100] =
{2635,333387,1701,1748,267701,694,2391,133423,1175,396438<BR> ,3402,3749,331177,1453,694,201326,2350,465197,3221,3402<BR> ,400202,2901,1386,267611,605,2349,137515,2709,464533,1738<BR> ,2901,330421,1242,2651,199255,1323,529706,3733,1706,398762<BR> ,2741,1206,267438,2647,1318,204070,3477,461653,1386,2413<BR> ,330077,1197,2637,268877,3365,531109,2900,2922,398042,2395<BR> ,1179,267415,2635,661067,1701,1748,398772,2742,2391,330031<BR> ,1175,1611,200010,3749,527717,1452,2742,332397,2350,3222<BR> ,268949,3402,3493,133973,1386,464219,605,2349,334123,2709<BR> ,2890,267946,2773,592565,1210,2651,395863,1323,2707,265877};<BR> static
int wCurYear,wCurMonth,wCurDay;<BR> static int
nTheDate,nIsEnd,m,k,n,i,nBit;<BR> TCHAR szNongli[30],
szNongliDay[10],szShuXiang[10];<BR> /*---取当前公历年、月、日---*/<BR> wCurYear
= pSt->wYear;<BR> wCurMonth =
pSt->wMonth;<BR> wCurDay =
pSt->wDay;<BR> /*---计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)---*/<BR> nTheDate
= (wCurYear - 1921) * 365 + (wCurYear - 1921) / 4 + wCurDay +
wMonthAdd[wCurMonth - 1] - 38;<BR> if((!(wCurYear % 4))
&& (wCurMonth > 2))<BR> nTheDate = nTheDate +
1;</P>
<P> /*--计算农历天干、地支、月、日---*/<BR> nIsEnd = 0;<BR> m =
0;<BR> while(nIsEnd !=
1)<BR> {<BR> if(wNongliData[m] <
4095)<BR> k =
11;<BR> else<BR> k =
12;<BR> n =
k;<BR> while(n>=0)<BR> {<BR> //获取wNongliData(m)的第n个二进制位的值<BR> nBit
=
wNongliData[m];<BR> for(i=1;i<n+1;i++)<BR> nBit
= nBit/2;</P>
<P> nBit = nBit % 2;</P>
<P> if (nTheDate <= (29 +
nBit))<BR> {<BR> nIsEnd =
1;<BR> break;<BR> }</P>
<P> nTheDate = nTheDate - 29 -
nBit;<BR> n = n -
1;<BR> }<BR> if(nIsEnd)<BR> break;<BR> m
= m + 1;<BR> }<BR> wCurYear = 1921 + m;<BR> wCurMonth
= k - n + 1;<BR> wCurDay = nTheDate;<BR> if (k ==
12)<BR> {<BR> if (wCurMonth == wNongliData[m] /
65536 + 1)<BR> wCurMonth = 1 -
wCurMonth;<BR> else if (wCurMonth > wNongliData[m] /
65536 + 1)<BR> wCurMonth = wCurMonth -
1;<BR> }</P>
<P> /*--生成农历天干、地支、属相 ==>
wNongli--*/<BR> wsprintf(szShuXiang,"%s",cShuXiang[((wCurYear -
4) % 60) %
12]);<BR> wsprintf(szNongli,"%s(%s%s)年",szShuXiang,cTianGan[((wCurYear
- 4) % 60) % 10],cDiZhi[((wCurYear - 4) % 60) % 12]);</P>
<P> /*--生成农历月、日 ==> wNongliDay--*/<BR> if (wCurMonth
< 1)<BR> wsprintf(szNongliDay,"闰%s",cMonName[-1 *
wCurMonth]);<BR> else<BR> strcpy(szNongliDay,cMonName[wCurMonth]);</P>
<P> strcat(szNongliDay,"月");<BR> strcat(szNongliDay,cDayName[wCurDay]);<BR> return
strcat(szNongli,szNongliDay);</P>
<P>}</P><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0
width=770>
<TBODY>
<TR bgColor=#006699>
<TD align=middle bgColor=#006699 id=white><FONT
color=#ffffff>对该文的评论</FONT></TD>
<TD align=middle>
<SCRIPT src="CSDN_文档中心_公历转农历(C版本).files/readnum.htm"></SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16
hspace=1 src="CSDN_文档中心_公历转农历(C版本).files/ico_pencil.gif" width=16>
</SPAN> hcj2002 <I>(2004-4-28 18:33:12)</I> </TD></TR>
<TR>
<TD bgColor=#ffffff colSpan=3 width=532><BR>学习ING <BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16
hspace=1 src="CSDN_文档中心_公历转农历(C版本).files/ico_pencil.gif" width=16>
</SPAN> jackyfly <I>(2004-4-23 9:00:18)</I> </TD></TR>
<TR>
<TD bgColor=#ffffff colSpan=3 width=532><BR>收藏!
<BR></TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TH bgColor=#006699 id=white><FONT
color=#ffffff>我要评论</FONT></TH></TR></TBODY></TABLE></DIV>
<SCRIPT language=javascript>
<!--
function isEmpty(s)
{
return ((s == null) || (s.length == 0))
}
function fubmitok()
{
if (isEmpty(document.add_critique.Critique_Content.value))
{
alert('评论不能为空!!!!') ;
return false;
}
document.add_critique.submit();
}
//-->
</SCRIPT>
<DIV align=center>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD>
<FORM action=Critique_Sql.asp method=post name=add_critique><INPUT
name=Critique_State type=hidden value=add> 评论人:xyj0323
评论:<BR> <TEXTAREA cols=104 name=Critique_Content rows=8></TEXTAREA><BR> <INPUT name=ubmit onclick=javascript:fubmitok(); type=button value=发表评论>
<INPUT name=Topic_id type=hidden value=26862> <INPUT name=From type=hidden
value=/Develop/Build_Article.asp?id=26862>
</FORM></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
<TBODY>
<TR align=middle>
<TD height=10 vAlign=bottom><A
href="http://www.csdn.net/intro/intro.asp?id=2">网站简介</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=5">广告服务</A> - <A
href="http://www.csdn.net/map/map.shtm">网站地图</A> - <A
href="http://www.csdn.net/help/help.asp">帮助信息</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=2">联系方式</A> - <A
href="http://www.csdn.net/english">English</A> </TD>
<TD align=middle rowSpan=3><A
href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG
border=0 height=48 src="CSDN_文档中心_公历转农历(C版本).files/biaoshi.gif"
width=40></A></TD></TR>
<TR align=middle>
<TD vAlign=top>百联美达美公司 版权所有 京ICP证020026号</TD></TR>
<TR align=middle>
<TD vAlign=top><FONT face=Verdana>Copyright © CSDN.net, Inc. All rights
reserved</FONT></TD></TR>
<TR>
<TD height=15></TD>
<TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--内容结束//--><!--结束//--></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -