如何从阳历算出农历年月日时的天干地支?

aqiaoaqiao 2009-04-13 01:59:33
如何从阳历算出农历年月日时的天干地支?
要求可编译的C或C++代码。
以下是网上的,但编译时出错:

// Lunar.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
/*
prototype: int calconv( struct convdate * );
struct convdate
{
int source; ==0 则输入日期为西历, !=0 则输入为农历
int solaryear; 输出或输入之西历年份
int solarmonth; 西历月
int solardate; 西历日
int lunaryear; 输出或输入之农历年份
int lunarmonth; 农历月
int lunardate; 农历日
int weekday; 该日为星期几 ( 0==星期日, 1==星期一, ... )
int kan; 该日天干 ( 0==甲, 1==乙, ..., 9==癸 )
int chih; 该日地支 ( 0==子, 1==丑, ..., 11==亥 )
};
呼叫时须设定 souce 的值, 若为 0 则为西历转农历, 否则为农历转西历. 然後视
输入为西历或农历来设定西历或农历的年月日. 转换後的年月日会填入结构中( 农
历或西历 ), 以及该日为星期几, 天干地支.
若函式的返回值为 0 表示没有错误, 1 为输入之年份错误, 2 为输入之月份错误,
3 为输入之日期错误.
输入之西历年须在 1937 - 2031 间
输入之农历年须在 1936 - 2030 间
若须扩充, 则增加 lunarcal[]
*/
char kan[10][4]={"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
char chih[12][4]={"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};
#define firstyear 1936 /* the first year in lunarcal[] */


.......................................

else
printf("未知错误!\n");

printf("谢谢你使用本程序!\n");
return 0;
}


出错信息如下:
哪位达人能解决?thanks.

1>------ 已启动全部重新生成: 项目: Lunar, 配置: Debug Win32 ------
1>正在删除项目“Lunar”(配置“Debug|Win32”)的中间文件和输出文件
1>正在编译...
1>stdafx.cpp
1>正在编译...
1>Lunar.cpp
1>d:\myproj\vs\vc9\dagl\lunar\lunar\lunar.cpp(215) : error C2440: “=”: 无法从“int *”转换为“int”
1> 没有使该转换得以执行的上下文
1>d:\myproj\vs\vc9\dagl\lunar\lunar\lunar.cpp(253) : error C2440: “=”: 无法从“int *”转换为“int”
1> 没有使该转换得以执行的上下文
1>d:\myproj\vs\vc9\dagl\lunar\lunar\lunar.cpp(257) : error C2446: “>”: 没有从“int *”到“int”的转换
1> 没有使该转换得以执行的上下文
1>d:\myproj\vs\vc9\dagl\lunar\lunar\lunar.cpp(257) : error C2040: “>”: “int”与“int [14]”的间接寻址级别不同
1>d:\myproj\vs\vc9\dagl\lunar\lunar\lunar.cpp(258) : error C2113: “-”: 指针只能从另一个指针上进行减法运算
1>生成日志保存在“file://d:\Myproj\vs\vc9\dagl\Lunar\Lunar\Debug\BuildLog.htm”
1>Lunar - 5 个错误,0 个警告
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========
...全文
1580 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打开下面链接,直接免费下载资源: https://renmaiwang.cn/s/ntus3 万年历是中国传统历法的重要组成部分,它集成了公历、农历天干地支等多种时间计算方式,为人们的生活和生产活动提供了精确的时间参照。公历,又称格里历或西历,是目前国际通用的太阳历,起源于古罗马历法,后经多次改革,成为全球广泛采用的日历系统。它以地球绕太阳公转的周期为基础,将一年划分为365天或366天(闰年),由12个月组成,每月的天数根据实际情况有所不同。 农历,又称阴历或夏历,是根据月球绕地球运行的周期制定的,月亮的相位变化成为其主要特征。一个农历月的时间大约是29.5天,因此农历年通常由12个月组成,大约是354天,比公历年短约11天。为了调和太阳年与太阴月的长度差异,农历中设定了闰月,大约每三年会有一次闰月,使得农历年和公历年保持大体一致。 天干地支是中国古代的一套计时系统,共有十天干和十二地支,两者结合形成六十甲子循环。十天干包括:甲、乙、丙、丁、戊、己、庚、辛、壬、癸;十二地支包括:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。天干地支系统不仅用于纪年,还可用于纪月、纪日、纪时,广泛应用于中国的传统节气、历史年表、天文历算等领域。在万年历中,天干地支被用来标识年份,如“辛亥年”、“戊戌年”等。 万年历的精确性是通过长期的天文观测和数学计算积累起来的,它能够在长达数千年的时间跨度内,为人们提供准确的日期信息和重要的历法数据。源码免费下载链接提供的万年历系统正是将这些历法知识与计算机编程技术相结合的产物,便于用户在电子设备上方便地查询和使用这些传统知识。 通过整合公历与农历,以及传统天干地支,万年历能够帮助人们更好地了解和安排时间,无论是在农业生产、节日庆典还是日常生活中都发挥着重要作用。历法中蕴含的智慧和对时间规律的认识,反映出中国古代文明的深厚底蕴和对自然规律的尊

19,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧