シェルスクリプトで「1000日」などの形式を「2年、9ヶ月、0日」などの形式に変換する「簡単に保つ」方法は何ですか?
モジュラスまたは床丸めを適用することを検討しました。同様の問題を見ましたが、「短い」方向に行くのではなく、すべてを必要以上に複雑にする追加の要件があります。
ベストアンサー1
そしてdateutils
:
$ today=$(dseq -f %F now)
$ ddiff -f '%y years, %m months and %d days' "$today" "$(dadd "$today" 1000)"
2 years, 8 months and 26 days
各月の日数が異なるため、開始日(この場合は今日)によって結果が異なります。
一部のシステムでは、他のパッケージの同様の名前のコマンドと区別するために、ユーティリティ名の前に(、、、)dateutils
が付いています。dateutils.
dateutils.dseq
dateutils.dadd
dateutils.ddiff