万年历任务: 任意输入年份,输出1月至12月的日历

格式要求:

万年历背景:没有了解年历之前会觉得不就是计算闰年,然后计算那一年第一天是星期几的问题,可是这样设计出来总是和现在的日历对不上!!于是又看了一些经验,发现问题出现在1582年,大家有兴趣可以看看手机上的年历,1852年10月4日-15日期间十天是凭空消失的。这是由于公元前45年至公元1582年10月期间,罗马使用的是儒略历,计算的方式是将一年看作12个月,每四年闰一次。但是随着时间的累积误差越来越大,于是在1582年10月4日后,开始使用格里历,也就是我们熟悉的四闰,百不闰,四百再闰了。

万年历编程思路:年历中月份是会改变的,而星期则是1~7循环,所以首先要计算出输入年份1月1日是星期几。方法是计算这一年年距离公元1年有多少天sum,然后week=(sum+5)%7(1月1日周六,这个也是有很多争议啊,复试之后再研究吧)计算出是星期几。Tips:在1582年时,记得把10月4日-15日日子跳过哦,要不然就白费了罗马教皇格里的良苦用心啦。 但是这样的结果并不对,于是还是使用了计算星期的公式啊······要注意的是这个公式只适用于1582年之后,之前还是使用上述公式啊

万年历程序:

#include <stdio.h>
int year(int n);void main()
{//4.输出万年历 (输入年份,输出1月至12月的日历)int days[]={31,28,31,30,31,30,31,31,30,31,30,31};int sum=0,x,i,j,week,num;//确定每一年的星期printf("年份:");scanf("%d",&x);if(year(x)==366) days[1]=29;for(i=1;i<=x;i++)        //儒略历 4年一闰 格里历 四闰百不闰四百闰  //1582年之前 使用儒略历,并且10月5日-14日存在10天的真空期sum+= year(i);if(x<=1582)week=(sum+5)%7; //周天为0     else//计算x年1月1日星期week=(x+(x-1)/4-(x-1)/100+(x-1)/400)%7;for(i=0;i<12;i++){num=1;printf("=================%d月==================\n",i+1);printf("Sun   Mon   Tues  Wed   Thur  Fri   Sat\n");for(j=0;j<week;j++)printf("      ");  //空6格for(j=0;j<days[i];j++){if(x==1582&&i==9&&j==4){j=13; num=15;}   printf("%-6d",num++);week=(week+1)%7;if (week%7==0)printf("\n");}printf("\n\n");}}int year(int n)
{//闰年366 非闰年365//闰年 普通闰年: 能被4整除但不能被100整除     四闰 百不闰 四百再闰//     世纪闰年: 能被400整除if(n<1582)return((n%4==0)?366:365);    elsereturn( (n%4==0)&&(n%100!=0)||(n%400==0)? 366:365);        }

万年历结果:

万年历编写(从公元元年算起 考虑儒略历与格里历的变换)相关推荐

  1. 公元元年之后的天数与日期之间的相互转换 阳历日期转农历

    前几天,有个同事问:知道现在距离公元元年1月1日的天数,如何计算日期?此前对闰年的概念也不是很清晰,在网上查了下闰年规则,整理出一个日期转换类,贴出来和大家分享,不足之处还请多多指教! 先说下闰年规则 ...

  2. R语言用户自定义函数的语法结构、编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)、编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)、应用自定函数

    R语言用户自定义函数的语法结构.编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等).编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据).应用自定函数 ...

  3. 利用C#编写一个高斯正反算程序

    一.代码界面展示 整个界面控件为tabControl,groupBox,label,textbox,comboBox,button,richTextBook. 二.代码运算结果展示 数据结果采用国家统 ...

  4. 求出公元元年到公元2022年之间的所有闰年

    已知满足以下条件的年份为闰年: 1.能被4整除: 2.不能被100整除: 3.能被400整除: #include <stdio.h> 代码如下: int is_leap_year(int ...

  5. 利用Python编写一个高斯正反算程序

    一.前言 这次的高斯正反算程序是使用的Python编写的. 环境信息是:Win10.PyCharm 2021.3.1.PySide6 6.3.1.Python 3.9.9,基于QT Designer设 ...

  6. 万年历编写一年c语言思,万年历C语言

    满意答案 sky0candy 2016.01.13 采纳率:45%    等级:12 已帮助:3065人 // 万年历.cpp : Defines the entry point for the co ...

  7. 输入一个年月日,计算这一天到公元元年有多少天

    #include <stdio.h> #include <stdint.h>int main(int argc,const char* argv[]) {uint16_t ye ...

  8. 高光谱图像分类_高光谱图像分析-分类

    高光谱图像分类 初学者指南 (Beginner's Guide) This article provides detailed implementation of different classifi ...

  9. C语言第一行是1第二行是1和2,【C语言】第一个C语言小程序 —— 日期算法和万年历 2...

    1. 上一篇我们只完成了 a. 算出某年某月某日是星期几 b. 打印出某年某月的日历 这一次我写了一个打印某一年的日历.一开始我是不打算写的,因为可以调用之前的方法,分别打印出这一年12个月的日历.但 ...

最新文章

  1. Centos7环境下etcd集群的搭建
  2. 单线程下的生产者--消费者模式详解,wait和sleep的区别
  3. C# 模拟 Post
  4. JQuery Mobile 手机显示页面偏小
  5. 大家心目中的这些「优质」论文,你读过几篇?| PaperDaily #01
  6. Hibernate Query Language(HQL)。
  7. unreal4怎么设置游戏模式_在Unreal4中如何连接自定义服务器
  8. [JEEWX问题修复] JeeWX开源版2.3几处代码修改。
  9. jquery div点击展开,点击收起,点击除了该div外任何地方,该div隐藏
  10. HTML颜色值的设置
  11. 虚拟摄像头之九: IMX8Q 的 camera.imx8.hal 框架详解
  12. 湘潭大学计算机分数线,湘潭大学录取分数线2021是多少分(附历年录取分数线)
  13. vs2017 项目开发 解决方案下的多个项目
  14. 对比Windows Phone与iOS、Android开发的不同[转]
  15. 基本回路系统和基本割集系统
  16. 2021-12-23 网工基础(十四) 链路聚合的两种模式、堆叠、集群、IP路由基础
  17. Hiredis快速入门
  18. 安装win和xp双系统 若干问题
  19. 复旦大学计算机科学技术学院院长姜育刚:人工智能算法治理|达观WAIC回顾
  20. 转载 Python 学习-Matplotlib库

热门文章

  1. 实验详解手工指定MPLS的LSP(Huawei设备)
  2. 做到这些让你逃离奴隶的束缚
  3. 2.电调(ESC)-XP7A刷BLHeli固件(四轴专用,更快响应)
  4. 【Kali_017】软件包管理synaptic
  5. CommVault v11新特性和战略解读
  6. python热图_python – 使用matplotlib中的3D数据生成热图
  7. 正面刚Apple Watch:Fitbit第一款真正的智能手表
  8. Javascript(jQuery)中绑定页面上所有按钮点击事件的几种方式
  9. 目前市面上量化交易软件、平台、框架的特点, 重点推荐VNPY底层仿真回测系统
  10. Python操作excel之openpyxl