本篇内容主要讲解“基于C语言如何实现计算生辰八字五行”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于C语言如何实现计算生辰八字五行”吧!本文主要介绍生辰八字的算法,没有计算农历日期,农历计算较
本篇内容主要讲解“基于C语言如何实现计算生辰八字五行”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于C语言如何实现计算生辰八字五行”吧!
本文主要介绍生辰八字的算法,没有计算农历日期,农历计算较为复杂,加农历算法,加月历打印输出成了万年历了。
以下是计算方法的源码:
canvas cs ;string sBarDes[10]; //按钮int nBarId[10];float src[4]; //ClearDraw (cls) clear screenint ds[3] ; int i,j,t,k; //t = timesstring fname; //filename 加底图int sx, sy, x0, y0 ;int alln,alln1;int ns,leap;double nleap,nleapd; //农历闰月,0无闰,闰月大小int n,n0,n1,n2 ;string s,s0,ss,s5,s6 ;string s1,s2,s3,s4; string s11, s12, s13, s14 ;int wd ;string wds,wdss; //weekday double dy0,dy1,dm1,dd1; int dy, dm, dd ; string dy2, dm2, dd2 ; //日期输入dy2double hh2,mm1,ss1; string hh3,mm2,ss2;int gzy,gzm,gzd,gzh; //干支 yy mm dd hhstring gzys,gzms,gzds,gzhs;int gzn1;int yz,mz; //年柱 月柱string gzs, bzs ; //八字string whss, g12ss,st28ss; //五行 十二建 二十八宿string tgs, dzs, whs, whs1, whs2 ; //计算五行int dzd0,dzd1; //冬至日 string jqnames ; //节气中文名称 string t1, t2, t3 ; //计算时间串 hh;mm;ssdouble jd; //计算节气double juD,tht,yrD;double sD; //shouDdouble vs,dalt; //solarint jqdn ; //节气计算int jqd1,jqd2 ; string jqs1,jqs2; string jqss1,jqss2; string jnum,jname1, jname2 ; main(){setDisplay(1); cs.SetBackground(240,240,240); cs.Active(); sBarDes[0]="输入日期"; nBarId[0]=100; sBarDes[1]=" "; nBarId[1]=101; sBarDes[2]="文本显示"; nBarId[2]=102; sBarDes[3]="图片显示"; nBarId[3]=103; sBarDes[4]="退出程序"; nBarId[4]=104; sBarDes[5]="..."; nBarId[5]=105; setToolBarHeight(6); setButtonTextSize(14); setToolBarBackgroundColor(255,220,220,220); setButtonColor(255,240,240,240); setButtonTextColor(255,0,0,120); setToolBar(100,myToolBarProc,sBarDes,nBarId,6); setTitle("生辰八字五行计算 ");//calculate jd to GD ** return jname2 *****jdtoGD(){double a,b,c,d,e;double F;double allss;F=jd-(int)(jd);//print " ";//print " JD = ",jd;//print " 时分秒 日小数 = ",F; a=(int)(jd+0.5); b=a+1537; c=(int)((b-122.1)/365.25); d=(int)(365.25*c); e=(int)((b-d)/30.6001);dd1=b-d-(int)(30.6001*e);dm1=e-1-(int)((e/14)*12);dy1=c-4715-(int)((7+dm1)/10);//print a," ",b," ",c," ",d," ",e;dy2=intToString (dy);dm2=intToString (dm);dd2=doubleToString (dd1);if (len(dm2)==1)dm2="0"+dm2;if (dd1<10)dd2="0"+dd2;dd2=subString (dd2,0,2);//print dy2+" 年 "+dm2+" 月 "+dd2+" 日 ";if(n==24)jqdn=(int)(dd1);if (n==24&&dm1<3)jqdn=jqdn+1; //日allss 的小数转为时分秒 allss=(int)((jd-a)*86400+43200.5);//print "allss = ", allss; hh2=(int)(allss/3600); mm1=(int)((allss-hh2*3600)/60); ss1=(int)(allss-hh2*3600-mm1*60); if(ss1>=60){ ss1=ss1-60; mm1=mm1+1;} if(mm1>=60){ mm1=mm1-60; hh2=hh2+1;}//print "JD 转为 GD,计算结果:”; hh3=doubleToString(hh2); mm2=doubleToString(mm1); ss2=doubleToString(ss1); if(hh2<10){ hh3="0"+doubleToString(hh2);} if(mm1<10){ mm2="0"+doubleToString(mm1);} if(ss1<10){ ss2="0"+doubleToString(ss1);} hh3=subString (hh3,0,2); mm2=subString (mm2,0,2); ss2=subString (ss2,0,2); jname1=subString(jqnames,(n-1)*2,2); //print "节气 : ",jname1; jname2=jname1+": "+dm2+"-"+dd2+" "+hh3+":"+mm2+":"+ss2; //return jname2;}//jdtoGD() **************//**** END ****
到此,相信大家对“基于C语言如何实现计算生辰八字五行”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
--结束END--
本文标题: 基于C语言如何实现计算生辰八字五行
本文链接: https://lsjlt.com/news/354008.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0