你可曾想过多少天自从你开始你的饮食,开始你每天的慢跑,或首次使用Linux ?如果你能记得开始日期,一个简单的Linux脚本可以为你数天。所有你需要的是日期命令你的约会变成秒计算,减去的开始日期结束日期,然后把结果通过适当的把秒数到相应的天数。
为什么秒?
的原因是转换为天日期命令可以显示一个日期以来的秒数Linux epoch-10 = 970-01-01。这是唯一的选择日期提供了观察的时差两个日历日期。
如果你想看到多少秒时代开始以来,输入命令:
日期+ % s 1655894738美元
一旦日期命令有开始和结束日期转化为秒,很容易减一,将结果转换成两个日期之间的天数。
运行脚本
这是我称之为“count_the_days”的脚本。
# !/bin/bash echo - n”在yymmdd输入开始日期或名称格式:“阅读开始呼应- n”在yymmdd输入结束日期或名称格式:“阅读结束echo $((($(日期最新的= " $结束" + % s)——美元(日期最新的= " $开始”+ % s)) / (60 * 60 * 24)))
你会像这样运行脚本:
美元count_the_days yymmdd或名称中输入开始日期格式:220101在yymmdd输入结束日期或名称格式:220622 171
注意的天数从2022年初到171年6月22日。60 * 60 * 24秒变成天计算减法的结果除以86400 -在一天的秒数expr命令确认:
expr 60 \ 60 \ * 24 * 86400美元
不要不注意,我们还可以使用脚本在未来日期。
美元count_the_days yymmdd或名称中输入开始日期格式:220101在yymmdd输入结束日期或名称格式:221231 364
由于脚本是计数的天数从一个日期,上述结果是364而不是365。
年的四位数字
如果你碰巧注意到脚本的提示输入日期允许您指定年4位或便是数字,你可能想尝试。事实上,您可以输入一个日期4年和另两位。的日期命令会容纳你的偏好,仍然给你正确的答案。
美元count_the_days yymmdd或名称格式输入开始日期:20220101在yymmdd输入结束日期或名称格式:220622 171
达到进一步在时间
我最近才发现的日期命令没有问题达到回日期Linux时代之前。如果你指定一个日期之前1970-01-01和要求看的秒数,你只是得到一个非常大的负数。这是12月1日,1950显示为Linux时代以来的秒数:
回声(日期最新的美元=“19501201”+ % s) -602276400
这是主要的原因,鼓励使用的脚本名称的格式的日期以及更常用yymmdd格式。它的工作原理!
美元。/ count_the_days yymmdd或名称格式输入开始日期:19000101 yymmdd或名称格式输入结束日期:20220101 44560
虽然你可能没有预期,2022年开始44560天1900年开始后,下一个日期计算这个数字变成年,不该让你大吃一惊。记住,闰年不考虑,所以我们会看到一些在整数如果小数点后expr命令可以提供。
expr 44560/365 122美元
使用公元前命令,您可以查看错误或得到一个更精确的结果是这样的:
美元回声”规模= 2;公元前44560/365”| 122.08美元回声”规模= 2;“公元前| 121.99 44560/365.25
总结
你可能不花很多时间数天,但它很高兴知道日期命令可以为你做这种类型的计算。也很有趣的知道日期是如何存储在Linux系统和如何使用它们。