前言:活了那么久,想不想知道自己已经在这个世界上活了多少天了?本文就以小程序的形式解决这个问题,告诫大家人生苦短,请务必惜时如金。

为了提升小程序的用户体验,不让用户做过多的输入,我们引入C语言中的这个头文件,让程序自动读取本机时间,用户只需要输入自己的生日,即可获悉自己的存活天数。

首先介绍一下的部分用法:

与日期和时间相关的数据结构

由此可知,tm是一个结构体,里面的一系列成员即是与本机时间相关的参数。需要注意的是,tm_year并不是实际的公元纪年,tm_year+1900才是实际的公元纪年,tm_mon也不是实际的月份,tm_mon+1才是实际的月份。例如,今天是2018年8月13日,tm_year的实际值是118,tm_mon的实际值是7。

下面我们尝试打印一下本机时间,里面的部分代码是获取本机时间的固定形式。

下面进入核心算法部分:

整个小程序虽然只有一行输入和一行输入,里面设计的内容却复杂的很。需要涉及闰年的问题,(year%4==0&&year%100!=0||year%400==0)为真的即为闰年,闰年的2月有29天。

上代码:

为了体现整个思路的流畅性,我几乎将所有的代码都放到了主函数中,请大家见谅。

由上述代码可知,我将天数的计算分成了三部分,一部分是前向天数,一部分是中间天数,一部分是后向天数。所谓的前向天数是指出生日期当年剩余的天数,例如出生日期为1999年6月18日,则前项天数为自1999年6月19日0时起至1999年12月31日24时止的总天数;后向天数是指本机日期当年已经经过的天数;例如本机时间为2018年8月13日,则后向天数为自2018年1月1日0时起至2018年8月13日24时止的总天数。而中间天数是指间隔年的所有天数,举个例子,1998年3月2日和2000年6月18日,间隔年就是1999年这一整年;若是1998年3月2日和1999年6月18日,则没有间隔年,只有前向天数和后向天数。间隔年若为闰年则天数加上366,间隔年若为正常年份则天数加上365。此外,在前向天数和后向天数的计算中,也要注意考虑闰年和正常年份,以及2月这个特殊的月份。

最后为大家展示一下实验结果:

人生不过三万天,你有多少的时间虚度了,又有多少的时间用来敲了代码,又有多少的时间陪了家人和朋友。希望各位程序猿/媛们可以拿出更多的时间做更有意义的事。共勉。

更多专栏文章:http://www.qukuaiwang.com.cn/zhuanlan

声明:本文由入驻区块网专栏作者撰写,观点仅代表作者本人,绝不代表区块网赞同其观点或证实其描述。

声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们kefu@lianshijie.com

C语言编程一个人活了多少天,来用代码算一算在这个世界上活了多少天吧相关推荐

  1. 什么用计算机算出自己在世界上活.了几天,据说科学家发现了一个“寿命计算器”,来算一下自己能活多久?...

    原标题:据说科学家发现了一个"寿命计算器",来算一下自己能活多久? 为什么有的人能活到100岁? 为什么有的人却早早离世? 到底是什么影响着我们的寿命? 据生命时报,美国坦普尔大学 ...

  2. 海盗分椰子c语言编程,水手分椰子——迭代法、递归解题(示例代码)

    题目内容: n(1< n <=5)个水手在岛上发现一堆椰子,先由第1个水手把椰子分为等量的n堆,还剩下1个给了猴子,自己藏起1堆.然后,第2个水手把剩下的n-1堆混合后重新分为等量的n堆, ...

  3. 松翰松翰c语言编程指导,松翰C程序检单例程代码下载

    标签: 松翰C程序检单例程 #include "define.h" #include "sn8p2501b.h" //--------------------- ...

  4. c语言编程文曲星猜数字,文曲星里的猜数字代码(原创)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 [color=#0000ff]}[/color] [color=#0000ff]}[/color] [color=#0000ff]}[/color] [c ...

  5. c语言数组判断不及格人数,C语言编程 运用数组求不及格人数

    C语言编程题,求数组89,80,95,84,73,84,91,78,87,94的和以及平均值 #includevoid main(){ int a[10]={89,80,95,84,73,84,91, ...

  6. c语言编程期刊论文管理系统,C语言编程下计算机软件论文

    1计算机软件C语言的编程实验 1.1计算机软件C语言的编程技巧 计算机软件C语言的编程中,最主要的依据是指针应用,C语言指针能够根据软件程序的编写需求,构建可行的函数,而程序员在设计函数编程的过程中, ...

  7. c语言扔骰子随机数的相加,C语言编程学习:制作掷骰子小游戏

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  8. C语言编程学习:制作掷骰子小游戏!超适合新手的练手项目!

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  9. c语言程序设计安卓,C语言编程学习app

    C语言编程学习app是一款为编程人员打造的学习类app,对于不少学习c语言的用户来说,需要看很多的教材资料,在手机上看会很方便,这款软件中有着大量的计算机二级考试题目,不仅能够提升您的编程能力,同时还 ...

最新文章

  1. 中国唯一的“国际数字化转型专家”,阿里云获Forrester认可
  2. Keras学习笔记---保存model文件和载入model文件
  3. super在python3和python2_Python扩展与 – 使用super()python 3 vs python 2
  4. python中、文件最重要的功能是( )和接收数据_Python基础语法14个知识点大串讲
  5. JEECG Framework 3.5.2 (快速开发平台) ACE版本发布
  6. 洛谷——P1311 选择客栈
  7. BookKeeper总结
  8. 【R】函数-数学函数
  9. 基于论辩图谱的互动论点对识别
  10. java多线程-线程池
  11. 【Tools】常用PDF转Word工具
  12. HTML:使用JavaScript(js)脚本在网页上显示实时时间
  13. 图像处理农业应用sci_SCI征稿通知
  14. 天池大数据竞赛 Spaceack带你利用Pandas,趋势图与桑基图分析美国选民候选人喜好度
  15. Python 做一个属于自己的web网站
  16. (CVPR-2021)动态区域感知卷积
  17. 高级运维工程师面试题(更新中)
  18. 数据可视化之matplotlib实战:plt.pie() 绘制内嵌环形饼图
  19. ENVI5.3安装或卸载时提示错误1628代码
  20. 判断一点是否在三角形的外接圆内

热门文章

  1. Spring通过静态方法factory-method或实例工厂factory-bean获取bean对象
  2. Sublime 输入中文显示方框问号乱码
  3. 利用旧服务器制作存储资源池,想将存储系统整合,又想实现存储资源池化?
  4. 计算机毕设 ai_2020年计算机人工智能方向保研经历分享(南大,复旦,中科院计算所)...
  5. 风变编程python笔记_自学Python和风变编程
  6. 一个中文字符占几个字节_字节与字符的关系
  7. python字符串补空格输出_python实现指定字符串补全空格、前面填充0的方法
  8. 可以随意更改规则的贪吃蛇(只要你懂,建议收藏)
  9. HoloLens 2开发: Vuforia图片识别
  10. 一维卷积神经网络_人人都能看得懂的卷积神经网络——入门篇