该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

实现公历与农历的转换一般采用查表法按日查表是速度最快的方法但51 单片机寻址能力有限不可能采用

按日查表的方法除按日查外我们可以通过按月查表和按年查表的方法再通过适当的计算来确定公历日所对应的

农历日期本文采用的是按年查表法最大限度地减少表格所占的程序空间

对于农历月来说大月为30 天小月为29 天这是固定不变的这样我们就可用1 个BIT 位来表示大小月信

息农历一年如有闰月为13 个月否则是12 个月所以一年需要用13 个BIT 闰月在农历年中所在的月份并不固定

大部分闰月分布在农历2 8 月但也有少量年份在9 月以后所以要表示闰月的信息至少要4BIT 在这里我们用4BIT

的值来表示闰月的月份值为0 表示本年没有闰月有了以上信息还不足以判断公历日对应的农历日因为还需要一

个参照日我们选用农历正月初一所对应的公历日期作参照日公历日最大为31 日需要5BIT 来表示而春节所在的

月份不是1 月就是2 月用1BIT 就够了考虑到表达方便我们用2BIT 来表示春节月2BIT 的值直接表示月份这

样一年的农历信息只用3 个字节就全部包括了

计算公历日对应的农历日期的方法先计算出公历日离当年元旦的天数然后查表取得当年的春节日期计算出春

节离元旦的天数二者相减即可算出公历日离春节的天数以后只要根据大小月和闰月信息减一月天数调整一月农

历月份即可推算出公历日所对应的农历日期如公历日不到春节日期农历年要比公历年小一年农历大小月取前一

年的信息农历月从12 月向前推算

公历日是非常有规律的所以公历日所对应的星期天可以通过计算直接得到理论上公元0 年1 月1 日为星期日

只要求得公历日离公元0 年1 月1 日的日子数除7 后的余数就是星期天为了简化计算采用月校正法根据公历的

年月日可直接计算出星期天其算法是日期年份所过闰年数月校正数之和除7 的余数就是星期天但如果是在

闰年又不到3 月份上述之和要减一天再除7 其1 12 月的校正数据为6 2 2 5 0 3 5 1 4 6 2 4 在

本程序中采用1 个字节表示年份闰年数也只计算1900 年以后的闰年数所以实际校正数据也和上述数据不同

详见:icbuy

51单片机农历转换公历c语言算法,用51单片机实现公历与农历星期的转换相关推荐

  1. 51单片机农历转换公历c语言算法,C51写的51单片机用公历转农历和星期程序

    点击此处下载 ourdev_615042D2O2A7.pdf(文件大小:154K) (原文件名:公历与农历日期的转换.pdf) #define uchar unsigned char #define ...

  2. 用于单片机的几种C语言算法

    单片机主要作用是控制外围的器件,并实现一定的通信和数据处理.虽然单片机不擅长实现算法和进行复杂的运算,但在某些特定场合,不可避免地要用到数学运算. 比如:在单片机进行数据采集时,会遇到数据的随机误差, ...

  3. pic单片机内部时钟校准c语言,实例讲解PIC单片机的时钟设置

    什么时钟? 首先我们先讲讲什么是时钟.时钟就是单片机的心脏.每跳动一下.整个单片机的各个电路就同步的动作一下.就好像我们做广播体操的时候 广播上喊的节拍1234 2234 3234....然后我们全部 ...

  4. 心率脉搏测试c语言算法,基于51单片机语音播报心率计脉搏测量仪设计(仿真源码+电路图+当时PaperPass16%查重论文)...

    一.本课题研究的主要内容.目的和意义 随着科技发展的不断提高,生命科学和信息科学的结合越来越紧密,出现了各种新颖的脉搏测量仪器,特别是电子脉搏仪的出现,使脉搏测量变得非常方便. 脉诊在我国已具有260 ...

  5. 51单片机c语言算法大全,51单片机C语言实例(350例)Proteus仿真和代码都有

    1-IO输出-点亮1个LED灯方法1 / h7 h! }$ P, {* F7 J  T10-LED循环左移 ! R+ }$ j) t5 a' \0 A100-24c02记忆开机次数 - d2 Q9 v ...

  6. 单片机独立式按键c语言程序,(原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询)...

    (原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询) /************************************************************ ...

  7. 基于51单片机的光照强度检测c语言程序,基于51单片机光照强度检测报告.doc

    基于51单片机光照强度检测报告 课程设计报告 课程名称: 智能仪器课程设计 题 目: 基于51单片机的光照强度 摘要 光敏电阻测光强度系统,该系统可以自动检测光照强度的强弱并显示让人们知道此时光照强度 ...

  8. 51单片机蜂鸣器播放音乐C语言程序实例,51单片机蜂鸣器音乐之八月桂花播放源程序...

    /************************************************************************ [文件名]  C51音乐程序(八月桂花) [功能]  ...

  9. 51单片机八位抢答器c语言设计,基于51单片机八路抢答器的设计

    基于51单片机八路抢答器的设计 毕业设计(论文)题 目:基于 51 单片机八路抢答器的设计 系 部: 专 业: 学 号: 学生姓名: 指导教师姓名: 指导教师职称: 2013 年 xx 月 xx 日X ...

  10. 51单片机控制步进电机的c语言程序,用AT89C51单片机控制步进电机的汇编源程序...

    描述 下面程序完成的主要功能:实现步进电机的正反转,加速.减速:显示电机转速(转速级别)和工作状态(正转.反转.不转). 源程序 SPEED EQU 10H ;SPEED为转速等级标志,共7级,即1~ ...

最新文章

  1. Python学习笔记:常用内建模块3:struct
  2. 在前端中如何在表格中最后一行加入输入框_UI设计进阶干货 — 如何制定UI规范...
  3. iphone实用配置工具_Debookee for Mac(网络数据抓包及分析工具)
  4. 关于对象的思考(二)
  5. 咏南中间件+开发框架中秋国庆大促
  6. 为什么要用dubbo,dubbo是什么,为什么要和zk结合使用?
  7. java基础 包装类
  8. Thinkphp5笔记七:设置错误页面②
  9. 苹果手机计算机切换用户名,苹果ID如何切换账号?苹果手机切换ID登录使用教程...
  10. C++ 职工管理系统
  11. tensorflow获取tensor的shape
  12. 实验11-1-7 藏头诗 (15 分)
  13. POJ 1753 Flip Game(递归枚举)
  14. word恢复忘记保存的文档
  15. 如何用手机数据线连接电脑上网?
  16. Android 9.0 新特性
  17. 网课python程序设计答案_Python程序设计知到网课答案
  18. 利用Aria2和旧电脑打造一台下载机
  19. 计算机网络,c语言,电子
  20. WGS84坐标系转为西安80坐标系的解决方式

热门文章

  1. JS中every()和some()的对比使用丨蓄力计划
  2. img标签,hr标签
  3. 小游戏轻量级数据库-GameDb
  4. android:layout_height=match_parent和android:layout_marginTop=100dp同时作用
  5. 问答社区常见三维问题整理
  6. 基于Spring Boot的个人博客系统的设计与实现 毕业设计-附源码271611
  7. 堆溢出 对HeapFree函数的详细调试
  8. 基于讯飞语音引擎3.0.apk的Android原生TTS
  9. Pandas[加深学习]01-pandas基本数据结构
  10. 天地图key申请_国家地理信息公共服务平台 天地图