最强万年历

nongli.h

/****************************************Copyright (c)**************************************************
**                              四川唐门高新技术开发有限公司
**                                     研    发    部
**                                独门暗器之孔雀翎研究室 
**
**                                http://www.蜀中唐门.com
**
**                                   维护健康 信守诚诺
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: nongli.c
**创   建   人: 赖皮 
**最后修改日期: 2011年10月
**描        述: 最强万年历   
**              支持所有的单片机、ARM、AVR、MSP430、PIC等(支持C开发)
**              可嵌入任何标准C编译器  BC++、VC、ADS、KEIL等
**用        法: 在ADS,Keil,BC++上可仿真
**
#include "nongli.c"
void main(void)
{
    unsigned char week;
    unsigned char NLyear[4];
    unsigned char JQdate;
             char str[15];


    while(1)
    {
        GetChinaCalendar   (2007,2,8,NLyear);  //NLyear={20,06,12,21}
        GetChinaCalendarStr(2007,2,8,str);     //str   ={"丙戌年腊月廿一"}
        GetWeek            (2007,2,8,&week);   //week  =4
        GetJieQi           (2007,2,8,&JQdate); //JQdate=4 意思为本月的4号是个节气
        GetJieQiStr        (2007,2,4,str);     //str   ={"立春"}
        GetJieQiStr        (2007,2,8,str);     //str   ={"离雨水还有11天"}
        GetShengXiaoStr    (2007,3,4,str);     //str   ={"猪"}
   }
}
**
**          LAI2005PI@126.com
********************************************************************************************************
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 赖皮 
** 版  本: v1.0
** 日 期: 2007年02月6日
** 描 述: 
**          这是改写网友Campo的万年历C51。
**          原作使用了数组查表法,效率较高。
**          移植到ARM上,我改写了进入参数。返回采用指针传递
**          增加了天干地支转换              ★〓个人原创〓★
**          输入公历日期得到农历字符串
**          非本人原创部分仅供研究与学习之用。如想商业使用,
**          请与原作者Campo联系——虽然我也不知道他的联系方式 ^o^
**
**★〓 仅以此献给我的宝贝女儿小涵,我的小狗狗要过第一个春节了 〓★
**★〓    任何人都可以发布和使用,希望保留本文件信息。谢谢    〓★
**         
**------------------------------------------------------------------------------------------------------
********************************************************************************************************
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 赖皮 
** 版  本: v2.0(情人节版)   我会在2月14日发布-->愿天下有情人终成眷属
**                                              愿和我一样已经进城的人幸福美满
** 日 期: 2007年02月8日
** 描 述:   
**          应网友的要求增加24节气的支持    ★〓个人原创〓★
**          为了节约空间我未采用复杂算法  而先把节气标志做了个表格(好累人哦)
**          一年的24个节气的日期只需要3个字节编码,每个bit对应一个节气 高->低
**          50年的节气表,只需要150个字节的存储空间 
**          如果本月的节气日期等于基本日期 bit=0  else  bit=1
**
**★〓   仅以此献给我亲爱的刘筒, 我一定会给你种柚子和樱桃的   〓★
**★〓    任何人都可以发布和使用,希望保留本文件信息。谢谢    〓★
**         
**------------------------------------------------------------------------------------------------------
********************************************************************************************************
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 赖皮 
** 版  本: v3.0(元宵节版)   今天是元宵节
**                                         
** 日 期: 2007年03月04日
** 描 述:   
**          增加12生肖                       ★〓个人原创〓★
**          12生肖比较简单,只要知道12地支就可以了
**          子-->鼠,丑-->牛,寅-->虎 ... 
**          鼠不分大小都喊老 (谁能对上)                   
**          增加移植选项,因为不同的平台要把常量表格定义到ROM段需要不同的关键字
**          目前只给出ARM、C51两种,用户可自己扩展
**
**★〓   仅以此献给我亲爱的妈老汉儿, 我一定会挣大钱的(未来)   〓★
**★〓    任何人都可以发布和使用,希望保留本文件信息。谢谢    〓★
**         
**------------------------------------------------------------------------------------------------------********************************************************************************************************
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 赖皮 
** 版  本: v3.1(2012版)   迎接2012
**                                         
** 日 期: 2011年10月
** 描 述:   
**         修正一些小bug
**
**★〓   仅以此献给我亲爱的妈妈, 希望你手术成功(肯定)         〓★
**★〓    任何人都可以发布和使用,希望保留本文件信息。谢谢    〓★
**         
**------------------------------------------------------------------------------------------------------
********************************************************************************************************
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 
** 版  本: 
** 日 期: 
** 描 述:  
**         
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/


/*********************************************************************************************************
** 函数名称:GetChinaCalendar
** 功能描述:公农历转换(只允许1901-2099年)
** 输 入:  year        公历年
**          month       公历月
**          day         公历日
**          p           储存农历日期地址
** 输 出:  1           成功
**          0           失败
** 作 者:  Campo
** 修  改:  赖皮
** 日 期:  2007年02月06日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
extern unsigned char GetChinaCalendar(
unsigned int  year,
unsigned char month,
unsigned char day,
unsigned char *p);
/*********************************************************************************************************
** 函数名称:GetWeek
** 功能描述:输入公历日期得到星期(只允许1901-2099年)
** 输 入:  year        公历年
**          month       公历月
**          day        公历日
**          week        储存星期地址
** 输 出:  无
** 作 者:  Campo
** 修  改:  赖皮
** 日 期:  2007年02月06日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
extern void GetWeek(
unsigned int year,
unsigned char month,
unsigned char day,
unsigned char *week);
/*********************************************************************************************************
** 函数名称:GetChinaCalendarStr
** 功能描述:输入公历日期得到农历字符串
**          如:GetChinaCalendarStr(2007,02,06,str) 返回str="丙戌年腊月十九"
** 输 入:  year        公历年
**          month       公历月
**          day         公历日
**          str         储存农历日期字符串地址   15Byte
** 输 出:  无
** 作 者:  赖皮        ★〓个人原创〓★
** 日 期:  2007年02月06日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
extern void GetChinaCalendarStr(
unsigned int  year,
unsigned char month,
unsigned char day,
        char *str);


/*********************************************************************************************************
** 函数名称:GetJieQi
** 功能描述:输入公历日期得到本月24节气日期 day<15返回上半月节气,反之返回下半月
**          如:GetJieQiStr(2007,02,08,str) 返回str[0]=4
** 输 入:  year        公历年
**          month       公历月
**          day         公历日
**          str         储存对应本月节气日期地址   1Byte
** 输 出:  1           成功
**          0           失败
** 作 者:  赖皮        ★〓个人原创〓★
** 日 期:  2007年02月08日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
extern unsigned char GetJieQi(
unsigned  int year,
unsigned char month,
unsigned char day,
unsigned char *JQdate);
/*********************************************************************************************************
** 函数名称:GetJieQiStr
** 功能描述:输入公历日期得到24节气字符串
**          如:GetJieQiStr(2007,02,08,str) 返回str="离雨水还有11天"
** 输 入:  year        公历年
**          month       公历月
**          day         公历日
**          str         储存24节气字符串地址   15Byte
** 输 出:  1           成功
**          0           失败
** 作 者:  赖皮        ★〓个人原创〓★
** 日 期:  2007年02月08日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
extern unsigned char GetJieQiStr(
unsigned int year,
unsigned char month,
unsigned char day,
        char *str);
/*********************************************************************************************************
** 函数名称:GetShengXiaoStr
** 功能描述:输入公历日期得到12生肖字符串
**          如:GetShengXiaoStr    (2007,3,4,str);     //str   ={"猪"}
** 输 入:  year        公历年
**          month       公历月
**          day         公历日
**          str         储存12生肖字符串地址   3Byte
** 输 出:  无
** 作 者:  赖皮        ★〓个人原创〓★
** 日 期:  2007年03月04日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
extern void GetShengXiaoStr(
unsigned int  year,
unsigned char month,
unsigned char day,
        char *str);    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值