【本程序在DEV C++ 4.9.9.2 下编译通过】

有关农历的东西有以下几篇文章:

/*

下面是网上一个非常流行的计算农历的算法和C代码。但是,它只能计算

1921年 到 2021年的农历,仅仅只有一百年。稍后,我将会帖出。

*/

#include

intLunarCalendar(int year,int *pmonth,int *pday)

{

const int MonthAdd[12] = {0,31,59,90,120,151,181,212,243,273,304,334};

const int LunarCalendarTable[100] ={

2635,333387,1701,1748,267701,694,2391,133423,1175,396438

,3402,3749,331177,1453,694,201326,2350,465197,3221,3402

,400202,2901,1386,267611,605,2349,137515,2709,464533,1738

,2901,330421,1242,2651,199255,1323,529706,3733,1706,398762

,2741,1206,267438,2647,1318,204070,3477,461653,1386,2413

,330077,1197,2637,268877,3365,531109,2900,2922,398042,2395

,1179,267415,2635,661067,1701,1748,398772,2742,2391,330031

,1175,1611,200010,3749,527717,1452,2742,332397,2350,3222

,268949,3402,3493,133973,1386,464219,605,2349,334123,2709

,2890,267946,2773,592565,1210,2651,395863,1323,2707,265877};

int DateCount,loop;

int i,j,n,Bit;

int month,day;

month = *pmonth;

day = *pday;

//计算从1921年2月8日(正月初一)到现在所经历的天数。

DateCount = (year - 1921) * 365 + (year - 1921) / 4 + MonthAdd[month - 1] - 38 + day;

//如今年阳历是闰年(2月有29天),而且当前月份大于2月,经历的总天数加1。

if((!(year % 4)) && (month > 2))

DateCount = DateCount + 1;

//下面是查表的算法。

loop = 1;

j = 0;

while(loop)

{

if(LunarCalendarTable[j] < 4095)

i = 11;

else

i = 12;

n = i;

while(n>=0)

{

Bit = LunarCalendarTable[j];

Bit = (Bit >> n) & 1;

if (DateCount <= (29 + Bit))

{

loop = 0;

break;

}

DateCount -= 29 + Bit;

n--;

}

if(!loop)

break;

j++;

}

year = 1921 + j;

month = i - n + 1;

day = DateCount;

if (i == 12)

{

if (month == LunarCalendarTable[j] / 65536 + 1)

{

month = 1 - month;

}

else if (month > LunarCalendarTable[j] / 65536 + 1)

month--;

}

*pmonth = month;

*pday = day;

return 1;

}

main()

{

const char *ChDay[] = {"*","初一","初二","初三","初四","初五",

"初六","初七","初八","初九","初十",

"十一","十二","十三","十四","十五",

"十六","十七","十八","十九","二十",

"廿一","廿二","廿三","廿四","廿五",

"廿六","廿七","廿八","廿九","三十"};

const char *ChMonth[] = {"*","正","二","三","四","五","六","七","八","九","十","十一","腊"};

struct tm * Local;

long t;

int year,month,day;

char str[13] = "";

#if0

t = time(NULL);

Local = localtime(&t);

year = Local->tm_year + 1900;

month = Local->tm_mon + 1;

day = Local-> tm_mday;

#else

year = 2006;

month = 1;

day = 1;

#endif

printf("%d年%d月%d日\t",year,month,day);

LunarCalendar(year,&month,&day);

if(month < 0)

{

strcat(str,"闰");

strcat(str,ChMonth[-month]);

}

else

strcat(str,ChMonth[month]);

strcat(str,"月");

strcat(str,ChDay[day]);

puts(str);

system("pause");}

C语言农历天干地支,农历一百年算法(1921~2021)【C语言代码】相关推荐

  1. c语言输出天干地支,农历中天干地支的计算【C代码】

    [本程序在DEV C++ 4.9.9.2 下编译通过] 有关农历的东西有以下几篇文章: 计算某天是星期几[C代码] 农历算法简介以及公式 农历中天干地支的计算[C代码] 农历一百年算法(1921~20 ...

  2. 农历天干地支算法源代码大全(javascript、vbscript、C#、flash、C++、C等等)

    农历天干地支算法源代码大全 (javascript.vbscript.C#.flash.C++.C等等) WonSoft编 文章提供计算农历天干地支及当年属相的算法源程序,使用的语言为Javascri ...

  3. python年份天干地支代码_农历天干地支算法源代码大全(javascript、vbscript、C#、flash、C++、C等等【转】...

    文章提供计算农历天干地支及当年属相的算法源程序,使用的语言为Javascript.VBScript.C#等. 一.C# 代码(1): 原来还准备自己写算法,并研究农历规则.发现那太难和麻烦了,光是农历 ...

  4. C语言农历天干地支,求思路。农历年月日时推天干地支

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 以下是百度知道提供的关于"天干地支"的详细介绍. 天干地支纪日 干支纪日,60日大致合2个月一个周期:一个周期完了重复使用,周而复始, ...

  5. 用c语言程序编写天干地支,农历中天干地支的计算【C代码】

    [本程序在DEV C++ 4.9.9.2 下编译通过] 有关农历的东西有以下几篇文章: /* 函数名称:int GetChineseEra(int year,int flag) 函数功能: 返回某年对 ...

  6. 2021年1--3月日历带农历天干地支

  7. c语言递归最小值,递归求最大最小值算法 分治策略(c语言实现)

    思路:运用分治的思想,将要排序的整个数组从中间劈开,分别求其左右两边的最大最小值,然后将求出的最大最小值合起来进行比较. 当左右两边的数组小到一定程度时: (1)数组中只有一个元素,maxNum=mi ...

  8. c语言数值运算法和非数值运算法,数据结构(c语言)1.数据结构是一门研究非数值计算的程序设计问题中计算机的 以及它们之间的 _ 和运算等的学科。① A....

    共回答了16个问题采纳率:68.8% 1.数据结构是一门研究非数值计算的程序设计问题中计算机的 A 以及它们之间的 _ B 和运算等的学科. ① A. 数据元素 B. 计算方法 C. 逻辑存储 D. ...

  9. SwiftUI 日期大全之日期日历年月日星期天干地支十二时辰时分秒(教程含源码)

    本文价值与收获 看完本文后,您将能够作出下面的界面 看完本文您将掌握的技能 使用Timer制作个clock 显示标准中文 显示农历天干地支十二时 解决方案 1.获取标准日期 //中文公历标准 //20 ...

最新文章

  1. 增删改查 HTML表格页面,表格增删改查.html
  2. 风变编程的python课程怎么样-风变编程的Python这么火,零基础可以自学吗?
  3. 关于Xcode6编译Pods工程出错问题
  4. 深度学习(四)——RNN, LSTM, 神经元激活函数进阶
  5. 为什么会出现docker
  6. SPI和RAM IP核
  7. exposed beyond app through Intent.getData(),或FileUriExposedException
  8. TypeScript函数
  9. 【网站】给网站添加一个夜间模式切换按钮
  10. 一不小心,老司机又翻车了
  11. 手把手教你用Python实现人脸识别,辨别真假!
  12. 【车道线检测与寻迹】【实践】4月17 线车位的实验思路与后续工作构想
  13. c语言的异步回调函数,C语言函数的回调函数
  14. SVN设置成中文版本
  15. 软件开发工作经验分享
  16. #S/4HANA 1610: Use case series intro and collection
  17. CDD数据库文件制作(一)
  18. 数据结构实验题——一元多项式计算
  19. android 最新 九宫格,Android开发中怎么显示一个九宫格图片
  20. evo测试工具错误: evo module evo.main_traj crashed - no logfile written (disabled)

热门文章

  1. 吉林大学计算机学院考研大纲,吉林大学计算机科学与技术学院2020考研复试大纲预测...
  2. 1584 mysql_【原创】基于MySQL 水平分区的优化示例
  3. 未在服务器上找到sql安装程序文件,MS SQL Server 2000/以前的某个程序安装已在安装计算机上创建挂起的文件操作。...
  4. 【GlobalMapper精品教程】050:点线面缓冲区分析案例
  5. 【功能规格说明书】命劫开发
  6. 【Verilog七段译码器】
  7. DFS Cut twigs
  8. 武汉python招聘与数据_(武汉有岗)星融元数据技术有限公司招聘公告
  9. android微信源生SDK分享问题
  10. MTD原始设备与NANDFLASH硬件驱动交互