
コマンドの使用
$ date +%j
今年の日付(001-366)を出力しますが、入力形式で今年の日付を使用する必要があります。
$ date --date='066 day' +%F
2021-03-07
これが私が2021年に出ると予想する結果です。代わりに私はそれを得た2021-05-13
。何が起こっているのか、そして私が望むものを得る方法があるのか知っている人はいますかdate
?
答え1
GNUを使用して1年の66日目を取得しますdate
。
$ date --date='jan 1 + 65 days' +%F
2021-03-07
または
$ date --date='dec 31 last year + 66 days' +%F
2021-03-07
date --date='066 day' +%F
今日から66日後の日付を取得します。 3月8日は、偶然にも5月13日です。
上記ではGNUを使用しましたdate
。 OpenBSDでは(あなたが要求したものではなく)、次のようにすることができます:
$ date -u -r "$(( $(date -ju -f %m%d 0101 +%s) + 65*86400 ))" +%F
2021-03-07
date
これは、1月1日から時間が追加されるという点で、上記の最初のGNUコマンドと多少似ています。
答え2
私はこのオプションを提案します:たとえば、80日目の日付を知りたい場合:
# take the number of day today
$ n=$(date +%j)
# set some number of days you want to know the date
$ t=80
# subtract the 'n', and add the 't'
$ date -d "-$n day +$t day" %F
2021-03-21
あなたの例に合わせて調整してください。
$ n=$(date +%j)
$ t=66
$ date -d "-$n day +$t day" %F
2021-03-07