狂人分析比特币趋势:来用代码算一算在这个世界上活了多少天吧
前言:活了那么久,想不想知道自己已经在这个世界上活了多少天了?本文就以小程序的形式解决这个问题,告诫大家人生苦短,请务必惜时如金。
为了提升小程序的用户体验,不让用户做过多的输入,我们引入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
声明:本文由入驻区块网专栏作者撰写,观点仅代表作者本人,绝不代表区块网赞同其观点或证实其描述。