启嘟渡科技商贸有限公司
SEARCH

与我们合作

我们专注提供互联网一站式服务,助力企业品牌宣传多平台多途径导流量。
主营业务:网站建设、移动端微信小程序开发、营销推广、基础网络、品牌形象策划等

您也可通过下列途径与我们取得联系:

微 信: wxyunyingzhe

手 机: 15624122141

邮 箱:

mfc 编写万年历 怎么编 我是白痴 求指导

更新时间:2024-12-23 03:46:53

我这里有现成的代码,可供你参考,主要是自绘的实现,附件给你两个版本的,均是MFC的(如下图)。

第一个是摘自网上的程序,但经我改良,农历数据使用自创的算法,年份支持也大大增加(从公元1600年至7000年),并且修正了部分错误。

第二个是自创的,是MFC绘制出来的界面,支持两种视图。

代码都是在VS2008上编译通过的,如需要源代码,请追问。

//判断闰年,参数:年份,闰年,返回值:FALSE-失败,TRUE-成功

staticBOOLIsLeapYear(WORDdwYear,BOOL&bLeapYear);

//计算日期在年内的序数,参数:年,月,日,年内序数,返回值:FALSE-失败,TRUE-成功

staticBOOLGetDaysNumInYear(WORDdwYear,WORDdwMonth,WORDdwDay,WORD&nDays);

//从年内序数计算月、日,参数:年,年内序数,月,日,返回值:FALSE-失败,TRUE-成功

staticBOOLGetDateFromDays(WORDdwYear,WORDnDays,WORD&dwMonth,WORD&dwDay);

//获取农历新年的公历年内序数,参数:农历年,返回值:农历新年的公历年内序数

staticshortLunarGetNewYearOrdinal(WORDdwLunarYear);

//获取农历月的天数,参数:农历年,农历月,是否为闰月,返回值:该农历月的天数,为0代表参数无效

staticWORDLunarGetDaysofMonth(WORDdwLunarYear,WORDdwLunarMonth,BOOLbLeapMonth);

//获取农历某一年的闰月情况,参数:农历年,返回值,该年的闰月月份,0表示无闰月

staticWORDLunarGetLeapMonth(WORDdwLunarYear);

//公历转农历,参数:公历年、月、日,农历年、月、日,是否为闰月,返回值:FALSE-失败,TRUE-成功

staticBOOLGetLunar(WORDdwYear,WORDdwMonth,WORDdwDay,WORD&dwLunarYear,WORD&dwLunarMonth,WORD&dwLunarDay,BOOL&bLeapMonth);

//农历转公历,参数:家历年、月、日,是否为闰月,公历年、月、日,返回值:FALSE-失败,TRUE-成功

staticBOOLGetGregorian(WORDdwLunarYear,WORDdwLunarMonth,WORDdwLunarDay,BOOLbLeapMonth,WORD&dwYear,WORD&dwMonth,WORD&dwDay);

//得到指定年份的节气信息,首个是小寒

staticBOOLGetJieQi(WORDdwYear,WORDdwMonth,WORDdwJieQi[2]);

//计算星期,返回-1表示输入的年月日不正确或者超出年份范围

staticshortGetDayOfWeek(WORDdwYear,WORDdwMonth,WORDdwDay);

//计算某个月的天数,返回天数,如果返回0表示年或月有误

staticWORDGetDaysOfMonth(WORDdwYear,WORDdwMonth);

//把iYear年格式化成天干记年法表示的字符串

staticvoidFormatLunarYear(WORDiYear,char*pBuffer);

//把iMonth格式化成中文字符串

staticvoidFormatLunarMonth(WORDiMonth,char*pBuffer,BOOLbLeapMonth=FALSE);

//把iDay格式化成中文字符串

staticvoidFormatLunarDay(WORDiDay,char*pBuffer);

多重随机标签

猜你喜欢文章

QQ客服 电话咨询