如何将年转换为天(过去)?
How to convert years to days (in the past)?
我想使用 Linux 命令将年数转换为天数(过去)。例如:
用户给号:10年前
程序应该计算10年前的天数总和(e.x: 10*12*31 (years/month/days) --> 3720天).
程序将它与今年开始的当前天数相加(例如: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
,以避免差一错误。
我不确定为什么会有人想要这样做,所以如果我误解了你的问题,请回来告诉我们。
我想使用 Linux 命令将年数转换为天数(过去)。例如:
用户给号:10年前
程序应该计算10年前的天数总和(e.x: 10*12*31 (years/month/days) --> 3720天).
程序将它与今年开始的当前天数相加(例如: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
,以避免差一错误。
我不确定为什么会有人想要这样做,所以如果我误解了你的问题,请回来告诉我们。