• ベストアンサー

31日前の日付はいつ?

#!/bin/sh d=`date +%Y%m%d` 以前に、このシェルで今日の日付を取り出す方法を教えていただいたのですが、 この日付を元に、31日前の日付を取り出す方法はありますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kabinett
  • ベストアンサー率60% (9/15)
回答No.1

31日前を取得するなら #!/bin/sh d=`date --date '31 days ago' +%Y%m%d` かな 31日前をいきなりdに入れてはダメで、dに本日を取得後、dとは別に31日前を取得する必要があるのなら #!/bin/sh d=`date +%Y%m%d` d2=`date --date "$d 31 days ago" +%Y%m%d` こんな感じ man dateにはもう少し詳しく書かれています。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

#!/bin/sh d=`date +%Y%m%d --date '31 days ago'` echo $d かな?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ○日前、○ヶ月前の日付を求めるコマンド

    Linuxコマンドに関する質問です。 date +%y%m%d にて今日の日付が6桁の数字で表されると思いますが、 前日、前月、また数ヶ月前の日付を求めるコマンドを調べています。 検索したところ date -v1d '+%y%m%d' で前日の日付を求められるという情報があったのですが これを試しても"-vというオプションは無い"と怒られます。 お分かりになる方がいましたらお教えください。

  • Solaris9でdateコマンドの結果がおかしい

    sun fire + Solaris9でシェルを作成しました。 目的は、1ヶ月前のログを削除する です。 で、こんなシェルを作成しました。 #!/bin/sh # logmove.sh DAY=`date +%d` RMDAY=`env TZ=JST+735 date +%Y%m%d` # 24H*31Day-9H=735 RMFILE=log_${RMDAY}.* (以下省略) しかし、この結果、$RMDAYには今日の日付しか返ってきません。これを RMDAY=`env TZ=JST+159 date +%Y%m%d` # 24H*7Day-9H=159 とすると、ちゃんと1週間前の日付が返ってきます。 dateの仕様なのか、シェルの仕様なのか良くわかりません。解決策はないでしょうか。

  • dateコマンドで一日前の日付を出したい

    Linuxにおいて、4月1日に出力されたファイルが3/31の内容を含んでいるため、一日前の日付でファイルの転送を実施しようと考えております。 任意のファイルのタイムスタンプを「honjitu」に格納し、 ①honjitu=`date -r file1 +%Y%m%d` 次に「honjitu」の一日前の日付を「kyou」に格納したいです。 ②kyou=`date -d ${honjitu} '-1 day' +%Y%m%d` といった感じで実行しますと以下が表示されます。 date: invalid option -- '1' Try 'date --help' for more information. ②をどのように修正すれば、思った通りにいきますでしょうか。 ご教示よろしくお願いいたします。

  • ActionScriptで1ヶ月前の日付や数日前の日付を得たい

    ActionScript2.0を使って日付を利用したグラフを作成しております。 X軸とY軸があり、X軸を日付で使います。 一ヶ月前から本日までの日付を目盛りに表示したいのです。 今日の日付は以下のようにしたら取得できると思うのですが、 //本日 var this_d = new Date(); today_date.text = (this_d.getMonth()+1) +"/" + this_d.getDate(); 一ヶ月前、25日前、20日前、のように特定の月と日を簡単に出力する方法がわかりません。 PHPやPerlではタイムスタンプから日付に戻せると思いますが、actionScriptでもそういった方法があれば便利かなとおもいましたが・・・ 恐れ入りますがご教授ください。

    • ベストアンサー
    • Flash
  • シェルスクリプト:N日前の日付の取得

    #/bin/sh DAY=$1 TIME=`date --date '"$DAY" day ago' +%Y%m%d` echo $TIME 上を実行しても$DAYが展開されず、 date: invalid date '"$DAY" day ago' と、dateコマンドがエラーを返してきます。 $DAYを展開させるためにはどうクォートすればいいのでしょうか?

  • シェルにて日付計算して値を取得したい

    シェルにて日付計算して値を取得したい A = 'date -d "1 days ago" + "%Y%m%d"' B = Aの2ケ月前を設定したい 悩んでいるところ↓ 上記のように、システム日付に1日前を変数Aへ格納して、その変数Aの2ケ月前を求めるには、どのようにしたらよいのでしょうか?

  • ターミナルで、その日の日付を取得し、ファイル名に加えたい

    Mac OS X 10.5.6 Leopardを使っています。 もしかしたらMacのカテゴリーよりふさわしい所があるかもしれませんが、 ここで質問させていただきます。 ターミナルで、その日の日付を取得し、あるファイル名に加える方法を知りたいです。 日付の形式は、YYYYMMDD(例えば20090314)の形が望ましいです。 あるファイルを一発でバックアップしてくれるシェルスクリプトを作成していて、 そのファイルのファイル名に、バックアップした日の日付を入れたいのです。 abc.txtというファイルのバックアップをとるとして、 $cp abc.txt abc$d.txt として、$dという変数にその日の日付を入れようとしたのですが、 うまい方法が分からず、出来ません。 日付取得のコマンド(date)を用いて、 date +"%Y/%m/%d" これで、希望の形の日付を表示することは出来たのですが、 これをそのまま変数に入れることは出来ないようです。 助言をいただければ、と思います。 ※ターミナルの勉強も兼ねているので、 Macのアプリケーションや、AppleScriptの紹介はご遠慮させていただきます・・・

    • ベストアンサー
    • Mac
  • 名前を変更してコピーを行うには

    Linuxのシェルスクリプトで、test1.txtというファイルを本日の日付を加えてコピーするにはどのような構文になるのでしょうか? (例:test1.txt → test1_20130531.txt) #!/bin/sh TODAY=`date +%Y%m%d` cp test1.txt test1_$TODAY でしょうか?

  • 設定日から指定日数後の日付の取得

    全く初心者の質問ですみません。 設定日から指定日数後の日付を取得したいと思っています。 echo $date // 正しい設定日がY-m-dで表示されます date ("Y-m-d", mktime (0,0,0,date('m',$date),date('d',$date) + $add_date,date('Y',$date))); で取得できると思ったのですが、常に1970-01-01が返されます。 先ほどecho $dateで設定した日付が表示されるにもかかわらず、 print_r(getdate($add_date)); とすると [seconds] => 31 [minutes] => 33 [hours] => 9 [mday] => 1 [wday] => 4 [mon] => 1 [year] => 1970 [yday] => 0 [weekday] => Thursday [month] => January [0] => 2011 と1970-01-01が返されます。 何故でしょうか?

    • ベストアンサー
    • PHP
  • 日付と曜日から、1週間前(7日前)の日付を算出するプログラム

    ツェラーの公式を用いて、日付(年月日)から曜日を算出する方法があります。 例えばY年M月D日の曜日は、下式で求められます。 (Y + Y/4 - Y/100 + Y/400 + (13*M + 8)/5 + D) % 7 *但し、1月・2月は、前年の13月・14月とする。 *答えは0=日曜~6=土曜 これを応用して(別に応用しなくても良いんですが・・・)日付と曜日から、1週間前の同一曜日の日付を求めるプログラムを考えております。 例) 入力:2005年9月21日、水曜日 出力(解):2005年9月14日 この例は非常に簡単に求められますが、完全汎用型のプログラムを考えております。 しかし、なかなか良い知恵が出ません!! どなたかご教示頂けると助かります。 よろしくお願いします。