日付の取得について-n日の日付


8

変数に特定の日付が格納されているとしますdate_m((date_m)-25)デートしたい。

例:15/09/2014変数に保存した後、変数に21/08/2014保存された日付から25を引いた場合に返されます。

回答:


13

のGNU実装でdate、昨日の日付を表示するには、次のように入力します。

$ date --date="1 days ago"

または

$ date --date="-1 day"

あなたの質問:

$ date --date="25 days ago"

または

$ date --date="-25 day"

変数で使用するには、次のように使用できます$()

pastDate=$(date --date="-25 day")
echo "$pastDate"

一般的なケースのn日と特定の日付の場合:

#!/bin/bash
date1="Tue Sep 2 07:53:47 EEST 2014"
echo "Before? "
read n
date --date="$date1 -$n day"

ソース


ただし、GNU date15/09/2014有効な日付として解析しません。
クサラナンダ

1

以下では、日付と日数が宣言されています。

スクリプトは日付を秒単位でTp1変換し、指定されたタイムポイント2(Tp2)から日数(秒単位)を引いた場合のタイムポイント1()を計算します。最後に秒は日付に変換されます。

Date_m=2014/09/15
Days=25
Seconds=$(echo "$Days"*60*60*24| bc -l)
Tp2date=$(date -d "$Date_m" +%Y/%m/%d)
Tp2sec=$(date -d "$TD" +%s)
Tp1sec=$(echo "$TDsec"-"$Seconds"| bc -l)
Tp1date=$(date -d @$Tp1sec)
echo "$Tp1date"

日付の形式は15/09/2014で、年が最初ではありません。
クサラナンダ

0

少し遅れて、25日の相対調整を使用して米国以外のdd / mm / yyyy形式の日付を処理する1つの方法を次に示します。

date_m='15/09/2014'
date --date "$(IFS=/ read d m y <<<"$date_m"; echo "$m/$d/$y - 25 days")" +%d/%m/%Y

21/08/2014

bash文字列のリダイレクト<<<やGNU を処理できるシェルなどを想定していますdate

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.