干支(gānzhī)纪年法是中国历法上自古以来就一直使用的纪年方法。
干支是天干和地支的总称。
把干支顺序相配正好六十为一周,周而复始,循环记录,这就是俗称的"干支表"。
甲、乙、丙、丁、戊、己、庚、辛、壬、癸等十个符号叫天干;
子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥等十二个符号叫地支。
所谓的干支纪年就是把一个年份用一个天干和一个地支组合来表示;
相应的也有干支纪月 干支纪日 干支纪时;
而 干支纪 年 月 日 时 就组成了生辰八字;
具体纪年查询结果举例如下:下面是具体的C语言程序:
/*输入要查询的年份区间 查询干支纪年*/
#include<stdio.h>
#include<string.h>
char *tiang[]={"癸","甲","乙","丙","丁","戊","己","庚","辛","壬"};
char *dizhi[]={"亥","子","丑","寅","卯","辰","巳","午","未","申","酉","戌"};
int ytian(int year) /*计算年对应的天干*/
{ int i;
i=year-3;
return (i%10);
}
int ydiz(int year) /*计算年对应的地支*/
{
int i;
i=year-3;
return (i%12);
}
int pr1(int n)
{
printf("%s",*(tiang+n));/*打印天干*/
}
int pr2(int n)
{
printf("%s",*(dizhi+n));/*打印地支*/
}
int main()
{
int year,m,n;
printf("######干支纪年查询######\n\n");
printf("请输入要查询的年份区间:\n\n");
printf("举例:1900 2100\n\n");
scanf("%d%d",&m,&n);
printf("\n\n查询结果如下:\n\n");
for(year=m;year<=n;year++)
{
int tg1,dz1;
tg1=ytian(year);
dz1=ydiz(year);
printf("%d年 ",year);
pr1(tg1);pr2(dz1);printf("\t");
if(year%10==9)printf("\n");
}
printf("\n\n######干支纪年查询######\n");
}
本文程序代码看似复杂 其实是因为本段代码只是原代码中的一部分,扩展后可以根据输入的 年 月 日 时 查询相应的生辰八字。
版权声明:本文为songbai220原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。