跪求万年历—公历转换器C++代码 70

跪求万年历—公历转换器C++代码,注意是C++哦!!!... 跪求万年历—公历转换器C++代码,注意是C++哦!!! 展开
 我来答
paradise300
2015-01-15 · TA获得超过3560个赞
知道大有可为答主
回答量:2589
采纳率:84%
帮助的人:503万
展开全部

我这里特地为你写了个C++的,看看是不是你所要的。代码实现了公历转农历,农历转公历,以下是类的定义(整个工程源代码请看附件):

class CTransform
{
public:
 CTransform(void);
 virtual ~CTransform(void);
private:
 //判断闰年,参数:年份,返回值:false-平年,true-闰年
 bool IsLeapYear(int iYear);
 //计算日期在年内的序数,参数:年,月,日,年内序数,返回值:false-失败,true-成功
 bool GetDaysNumInYear(int iYear, int iMonth, int iDay,int &nDays);
 //从年内序数计算月、日,参数:年,年内序数,月,日,返回值:false-失败,true-成功
 bool GetDateFromDays(int iYear, int nDays, int &iMonth, int &iDay);
 //检验年、月、日的合法性,参数:年,月,日,返回值:false-失败,true-成功
 bool DateCheck(int iYear,int iMonth,int iDay);
 //获取农历新年的公历年内序数,参数:农历年,返回值:农历新年的公历年内序数
 int LunarGetNewYearOrdinal(int iLunarYear);
 //获取农历月的天数,参数:农历年,农历月,是否为闰月,返回值:该农历月的天数,为0代表参数无效
 int LunarGetDaysofMonth(int iLunarYear,int iLunarMonth,bool IsLeapMonth);
 //展开大小月数据表(某一年的),参数:农历年,从上一年十一月开始到当前年份(闰)十二月的每月天数,返回值:0-失败,1-成功
 int LunarExpandDX(int iLunarYear,int iDayOfMonth[15]);
 //获取农历某一年的闰月情况,参数:农历年,返回值,该年的闰月月份,0表示无闰月
 int LunarGetLeapMonth(int iLunarYear);
public:
 //公历转农历,参数:公历年、月、日,农历年、月、日,是否为闰月,返回值:false-失败,true-成功
 bool Gongli2Nongli(int iYear,int iMonth,int iDay,int &iLunarYear,int &iLunarMonth,int &iLunarDay,bool &iIsLeapMonth);
 //农历转公历,参数:农历年、月、日,是否为闰月,公历年、月、日,返回值:false-失败,true-成功
 bool Nongli2Gongli(int iLunarYear,int iLunarMonth,int iLunarDay,bool iIsLeapMonth,int &iYear,int &iMonth,int &iDay);
};

以下是运行效果

其中年份区间可以自定,这里只为演示而取200年跨度,年份区间在1600年到6999年,使用提取工具(附件中有)提取农历信息。提取的数据进行了压缩,可移植到单片机。

AiPPT
2024-09-19 广告
作为北京饼干科技有限公司的工作人员,关于AIPPT免费生成PPT的功能,我可以简要介绍如下:AIPPT是一款基于人工智能技术的PPT制作工具,它为用户提供了免费生成PPT的便捷服务。用户只需简单输入PPT的主题或内容大纲,AIPPT便能智能... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式