经常在实际问题中会碰到类似日期确定的相关问题,在这里给大家做了一个简单的总结,希望能启发更多的想法:

闰年的确定:

对于确定日期过程中经常会遇到对闰年判断,此处犯难的原因大多并不是算法的问题,而是对闰年的计算方法不够透彻。所谓闰年,即每四年一闰,每一百年减一闰,每四百年加一闰。由此便可很简单的写出判断闰年的语句:

About this day:

Enter a certain day (a year,month and day ) , to determine the day of the year( from the first day )?

such as : input: 2017,1,5

对于这个问题,无非是要求确定输入的日期是一年的第几天,由此我们做如下分析:

首先,年份分闰年平年,因此此处便要用到上述对闰年的判断,判断年份之后需要对于平年和闰年分别进行分析;

其次,一年12个月分大小月,当输入月份之后,就是对月份的判定,对于3月以后的月份,2月的29号对天数将有影响,因此可以2月作为一条分界线。大月:1,3,5,7,8,10,12为31天,小月:4,6,9,11。由于以2月作为一次分界,因此可将1月单独考虑,即一月的日期就是该日期的天数。对于之后的日期,我们只需对此月前面的月份天数求和,然后加上该月的日期就是该日期的天数。

思路基本确定,然后就是用语句来实现:(简单以a,b,c代表年,月,日)

1.闰年: 1月日期正好就是其序数,2月则为1月的31天加上日期数,闰年2月为29天,以一个大月和一个小月为一个周期共61天,此时1,2月加起来为60天,因此最终的周期数要减一:

2.平年:与闰年类似

确定母亲节:

有这样一个问题:

母亲节是每年的五月第二个星期天,针对输入的年份,计算该年的哪一天是母亲节。

对于这个问题,乍一看似乎对此没有丝毫头绪,但稍微分析一下就会找到一点思路:

首先,母亲节是每年的五月第二个星期天,那么我们所要找的就是每年的五月第二个星期天是几号;从整体上来看,如果不存在闰年的影响,即一年是365天,利用周期性可以计算出365%7=1,意味着每年母亲节的日期往前延顺一天,即2014年母亲节如果是11号,那么可以确定2015年母亲节是10号,而对于五月的第二个星期天,显然只能出现在8号到14号这个区间内,因此现在只需要某年的母亲节就可以得到所有的母亲节的日期,即相差的年份对7取余,在补上闰年增加的天数,就是向前延顺的日期。

凑巧的是,2000年的母亲节正好是14号,因此就可以得到一个简单的算法(由于四百年加一闰,一百年减一闰,因此这个只是局限于2000年到2100年之间):

可以在此基础上改进使得能够计算任意的母亲节的日期。

c语言确定母亲节思路,C语言有关确定日期的相关问题相关推荐

  1. c语言字符比较思路,C语言讲解思路资料

    <C语言讲解思路资料>由会员分享,可在线阅读,更多相关<C语言讲解思路资料(10页珍藏版)>请在人人文库网上搜索. 1.C语言讲解思路1,认识C语言的组成: #in elude ...

  2. c语言编程大体思路,C语言:程序的设计思路跟特点

    C语言的一些特点:1. 采用结构化的控制语句,是完全模块化和结构化的语言. 2. 数据类型丰富,具有现代语言的各种数据结构 3. 语法限制不太严格,程序设计自由度大,同时也意味着容错性差. 4. 允许 ...

  3. 素数c语言程序解题思路,C语言上机实验题目解题思路.doc

    上机实验题目解题思路 目录 第十三次实验:指针之一2 2453:步骤:2 2454:步骤:2 3575:步骤:方法同24543 3576:步骤:3 3580:步骤:3 3582:步骤:3 第十二次实验 ...

  4. c语言年历显示思路,c语言程序设计年历显示要素.doc

    南京航空航天大学金城学院 设计题目 年历显示 学生姓名 学 号 专业班级 指导教师 2016 年 月 日 目 录 一.课程设计问题描述1 1.课程设计题目1 2.设计任务要求1 二.总体设计1 1.总 ...

  5. C语言编译器概要设计思路一

    700行代码自制C语言编译器一 编译器 1.编译器定义 将高级别语言翻译成更底层的机器可执行的语言 2.工业级编译器的编译过程 编译过程分前端和后端两个阶段 2-1 前端 前端即parser:将源代码 ...

  6. c语言饭卡服务程序设计思路,C语言设计—饭卡管理程序.doc

    C语言设计-饭卡管理程序 C语言课程设计报告饭卡管理程序 完成日期:2009年12月 [题目描述]该程序为饭卡管理程序,具有下列功能:(1) 录入某位持卡人的基本信息?教师:职工号?姓名?院系?金额; ...

  7. 魔王语言问题c语言实现及思路求解

    文章目录 问题描述及需求分析 需求分析 问题分析及实现路线(队列+栈) 结构体核心代码 队列核心代码 入队 出队 栈的核心代码 入栈 出栈 全部代码 单向循环队列和栈(改变B的对应密码) 总结 问题描 ...

  8. 如何用最短的时间学会C语言,并掌握C语言的精髓所在?

    点击上方蓝字关注我,了解更多咨询 及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是"让我欢喜让我忧."欢喜的是,C语言功能非常强大.应用广泛,一旦掌握了后,你就可以理直气壮地 ...

  9. 论文浅尝 - ACL2022 | 基于多语言语义解耦表示的跨语言迁移方法实现多语言阅读理解...

    论文作者:吴林娟,天津大学,研究方向为自然语言理解 论文链接:http://arxiv.org/abs/2204.00996 代码地址:https://github.com/wulinjuan/SSD ...

  10. c语言由声明部分,C语言期末复习.doc

    第1章 C语言概述 C语言出现的历史背景 计算机语言的发展 机器语言→汇编语言(低级语言)→高级语言 优点:可读性和可移植性好 缺点:难以实现汇编语言的某些功能 优点:可以直接对硬件进行操作 缺点:依 ...

最新文章

  1. CSDN送会员?免费的!都来领!
  2. Linux 命令行的聊天工具 CenterIM
  3. web 移动端 ios 浏览器中 animation 动画异常
  4. Matlab图像处理创新实践-实验3【图像锐化】
  5. windows server 注意windows的temp目录
  6. 210226阶段三 systemV信号量
  7. 分析阶段的类图和设计阶段的类图有什么区别?
  8. 怀念本科时代----科学入门的导师肖建华老师
  9. 标准模板库(STL)之 map 列传 (二)
  10. 一些老程序员不错的经验分享
  11. 故障:笔记本电脑部分按键失效
  12. onActivityResult不能收到setResult(RESULT_OK, intent);的回调
  13. ESP32创建局域网服务器VScode
  14. CentOS7安装FTP服务开启21端口
  15. 泛微使用代码关联附件
  16. 大学计算机专业找对象,单身率最高的大学专业是什么?这5个专业为什么成脱单最难专业...
  17. 无法像唐骏一样地成功
  18. 【2023年更新】自己手动去除 WinRAR 的弹窗广告
  19. 微信网页开发——JS-SDK接入以及微信二次分享图标和标题丢失
  20. java试用期考核难吗,试用期一年,但是最近说我考核不合格,准备辞退我来着,那么想知道试用期间被辞退流程都有什么的呢?...

热门文章

  1. 华为云迁移工具推荐最佳实践:Hyper-V虚拟化迁移到华为云
  2. 湖中剑 GitHub周刊 #10 | 开源监控uptime-kuma、LVGL嵌入式UI、node版本管理nvm
  3. 用MATLAB敲qda,LOMO_XQDA
  4. 操作系统学习笔记十二(基于分页的虚拟存储系统)
  5. 解读Secondary NameNode的功能
  6. Master of Typing Tutor 1.2.3 特别版 Mac 打字练习软件掌握打字
  7. C# socket 局域网聊天程序的一点心得
  8. 安装和使用Clouda
  9. 关于触摸板设备USB映射虚拟桌面的VID与PID
  10. 连接跟踪子系统之helper