将来の日付を取得したい場合は、なぜ現在の日付を取得し、sed/awk/etcを使用できないのですか?

将来の日付を取得したい場合は、なぜ現在の日付を取得し、sed/awk/etcを使用できないのですか?

見たばかりこの問題最初の答えdate コマンドから直接将来の日付を取得する方法を示します。日付を増やすためにテキスト操作を使用できないのはなぜですか?オリジナル:

date | # increment the time string by some amount here

私は慣れていないか、awkよりsed良い例を挙げます。

編集する:それでは技術的な理由はまったくありませんか?ただ携帯性と見るよりも難しいという事実によるのでしょうか?

ベストアンサー1

できますが、複雑になります。 1970年1月1日木曜日の深夜から経過した秒数など、単純な秒単位の日付がある場合(POSIX時間)、1分を追加するのは比較的簡単です。

$ date +%s
1379385111
$ date +%s | awk '{print "Current time is",$1,"soon will be", $1+60}'
Current time is 1379385275 soon will be 1379385335

大丈夫です。しかし、人間が読むことができる時間にしたい場合はどうすればよいですか? 4ヶ月2週間を追加したいですか?数秒以内に計算するのも痛く、そのような日付を解釈するのも簡単ではありません。たとえば、1を411174000表す日付は何ですか?

Sun 12 Dec 1936たとえば、3週間をどのように追加しますか?日付操作ライブラリが利用できない場合、これは驚くほど難しい問題になります。すべての日付を秒に変換して追加します。 2月とうるう年はもちろん、月は30日で、月は31日です。これは実際には小さな問題ではありません。これはまさにほとんどのプログラミング言語です持つ日付演算ライブラリ(真珠たとえば、または)。

さらに、または同じ日付をdate処理し、それを加算または減算し、数値文字列の代わりに人が読める日付を返すことができます。tomorrow Oct 18 2017

標準的な手順でこれを簡単に実行できますが、dateなぜ私たちは車輪を再発明しなければならないのですか?

1今日は1983年1月12日水曜日00:00:00 CETです。

おすすめ記事