如何将年转换为天(过去)?

How to convert years to days (in the past)?

我想使用 Linux 命令将年数转换为天数(过去)。例如:

  1. 用户给号:10年前

  2. 程序应该计算10年前的天数总和(e.x: 10*12*31 (years/month/days) --> 3720天).

  3. 程序将它与今年开始的当前天数相加(例如:3720 + 223)和 return 它。

这将为您提供 10 年后的日期:

date -d '+10 years' +"%j"

自 1970 年 1 月 1 日以来的当前时间(Unix 'day 1'):

dnow=$(date +"%s")

10年前的时间:

dthen=$(date -d '-10 years' +"%s")

计算一年中的今天:

dity=$(date +"%j")

然后用一个减去另一个,除以一天中的秒数,再加上今天是一年中的第几天:

timespan=$(( (dnow - dthen) / (24*60*60) + dity ))

您应该在 $dthen 之后设置 $dnow,以避免差一错误。

我不确定为什么会有人想要这样做,所以如果我误解了你的问题,请回来告诉我们。