14626|16

315

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

求个阳历转阴历的C语言代码 [复制链接]

最近做一个电子时钟,要求要阳历转阴历(2000-2099)的,所以来这里求助了。
此帖出自51单片机论坛

最新回复

学习了。  详情 回复 发表于 2014-5-3 15:37
点赞 关注
 

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这个有点复杂,不在于程序,而在于转换的算法,还是先去查查资料吧?
此帖出自51单片机论坛
 
 
 

回复

315

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 

回复 沙发 lioney 的帖子

看了一堆代码,不理解

复制粘贴,编译一堆错误

此帖出自51单片机论坛
 
 
 

回复

2131

帖子

0

TA的资源

至上芯片

4
 

回复 板凳 孤獨の快樂 的帖子

目前应该都是使用查表的方式,看不明白大家可以讨论一下
看到一个算日期的算法
设:公元年数-1977(或1901)=4Q+R
  则:阴历日期=14Q+10.6(R+1)+年内日期序数-29.5n
    (注:式中Q、R、n均为自然数,R<4)
  例:1994年5月7日的阴历日期为:
    1994-1977=17=4×4+1
  故:Q=4,R=1 则:5月7日的阴历日期为:
    14×4+10.6(1+1)+(31+28+31+30+7)-29.5n
    =204.2- 29.5n
  然后用29.5去除204.2得商数6......27.2,6即是n值,余数27即是阴历二十七日。
此帖出自51单片机论坛
 
个人签名处处留心皆学问!
 
 

回复

4138

帖子

0

TA的资源

五彩晶圆(中级)

5
 

回复 4楼 daicheng 的帖子

学习了哈哈哈,超级版主就是强哈哈哈赞一个
此帖出自51单片机论坛
 
 
 

回复

315

帖子

0

TA的资源

五彩晶圆(初级)

6
 

回复 4楼 daicheng 的帖子

这个只计算出日,那月呢?
此帖出自51单片机论坛
 
 
 

回复

2131

帖子

0

TA的资源

至上芯片

7
 

回复 6楼 孤獨の快樂 的帖子

建议查表完成
此帖出自51单片机论坛
 
个人签名处处留心皆学问!
 
 

回复

463

帖子

0

TA的资源

纯净的硅(中级)

8
 

回复 楼主 孤獨の快樂 的帖子

给你提供一个文件。可能对你有帮助!花了了20大洋帮你搞到的。不知道对你还有没有帮助!呵呵

C51的公历转农历及星期源代码.pdf

126.7 KB, 下载次数: 554

此帖出自51单片机论坛
 
 
 

回复

2749

帖子

0

TA的资源

裸片初长成(初级)

9
 
原帖由 孤獨の快樂 于 2011-3-18 16:26 发表
最近做一个电子时钟,要求要阳历转阴历(2000-2099)的,所以来这里求助了。

之前做过一个万年历,使用查表法来获取阴历的。、
https://bbs.eeworld.com.cn/thread-95249-1-1.html
此帖出自51单片机论坛
 
 
 

回复

327

帖子

0

TA的资源

纯净的硅(高级)

10
 

碰巧原来收集过……

碰巧原来收集到阳历转阴历的代码,忘了是哪个帖子的了。贴上头文件和附件。

/****************************************Copyright (c)**************************************************
**                              四川唐门高新技术开发有限公司
**                                     研    发    部
**                                独门暗器之孔雀翎研究室 
**
**                                 http://www.四川唐门.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: nongli.c
**创   建   人: 赖皮 
**最后修改日期: 2007年02月6日
**描        述: 最强万年历   
**              支持所有的单片机、ARM、AVR、MSP430、PIC等(支持C开发)
**              可嵌入任何标准C编译器  BC++、VC、ADS、KEIL等
**★〓 仅以此献给我的宝贝女儿小涵,我的小狗狗要过第一个春节了 〓★
**★〓    任何人都可以发布和使用,希望保留本文件信息。谢谢    〓★
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 赖皮 
** 版  本: v1.0
** 日 期: 2007年02月6日
** 描 述: 
**          这是改写网友Campo的万年历C51。
**          原作使用了数组查表法,效率较高。
**          移植到ARM上,我改写了进入参数。返回采用指针传递
**          例如:    GetChinaCalendar(2007,02,06,(unsigned char *)p);p-> 2006/12/19 在BC++4.5上可仿真
**          增加了天干地支转换  ★〓个人原创〓★
**          输入公历日期得到农历字符串
**          如:      GetChinaCalendarStr(2007,02,06,(char *)str) 返回str="丙戌年腊月十九"
**          非本人原创部分仅供研究与学习之用。如想商业使用,
**          请与原作者Campo联络——虽然我也不知道他的联络方式 ^o^
**
**          2007年02月6日    LAI2005PI@126.com
**------------------------------------------------------------------------------------------------------
********************************************************************************************************
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 
** 版  本: 
** 日 期: 
** 描 述:  
**         
**------------------------------------------------------------------------------------------------------
    
********************************************************************************************************/

/*********************************************************************************************************
** 函数名称: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        公历日
**          p           储存星期地址
** 输 出:  无
** 作 者:  Campo
** 修  改:  赖皮
** 日 期:  2007年02月06日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
extern void GetWeek(
unsigned int year,
unsigned char month,
unsigned char day,
unsigned char *p);
/*********************************************************************************************************
** 函数名称: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);

农历算法C.zip

5.96 KB, 下载次数: 326

此帖出自51单片机论坛

赞赏

1

查看全部赞赏

 
个人签名Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
 
 

回复

14

帖子

0

TA的资源

一粒金砂(初级)

11
 
学习各种算法=。=!
此帖出自51单片机论坛
 
个人签名不断学习才是王道~~~
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

12
 
学习一下,支持
此帖出自51单片机论坛
 
 
 

回复

289

帖子

0

TA的资源

一粒金砂(中级)

13
 
牛!!
此帖出自51单片机论坛
 
个人签名科学家研究已有的世界,工程师创造未来的世界!
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

14
 
学习了~
此帖出自51单片机论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

15
 
有1602的?
此帖出自51单片机论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

16
 

谢谢

非常感谢仁兄的无私奉献。
此帖出自51单片机论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

17
 
学习了。
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表