• ベストアンサー

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

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

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

お~. -d のあとって, 複数書けるんだ.... 1 day ago だと 1日前だし, 2 month ago だと 2ヶ月前. 足して 1 day ago 2 month ago にすると「2ヶ月と 1日前」. GNU coreutils 6.9 の date で確認.

teto_pun2
質問者

お礼

早速の回答ありがとうございました

関連するQ&A

  • shで書いたシェルスクリプトで`とか'とかの中で変数を使いたい。

    標題の質問ですが、gnu dateコマンドを使って数日前の日付を取得しているのですが、 こんな具合: DATE=`date --d '1 day ago'` 何日前の日付を取得するかを引数で決めたいのです。 しかし DATE=`date` --d '$1 day ago'` これでは当然上手く行きません。 上手いことエスケープして変数を使用する方法を教えてください。 シェルはshです。

  • シェルスクリプト: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を展開させるためにはどうクォートすればいいのでしょうか?

  • 変数から日付を取得したい

    こんにちは。 日付の入った変数から年月日を別々に取得したいのです。 いろいろ調べてみたのですが方法が見つかりませんでした。 substrで取得すると一桁の月の時、「-8」と取得してしまうので 日付として取得する方法があるのなら教えて頂けますか。 $date 格納されている値→2007-08-10 00:00:00 取得したい形は 「2007」「08」「10」 PHP4です。 何か良い方法があれば、ご教授ください。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 日付取得、計算及び表示コードが動作しません。

    日付取得、計算及び表示コードが動作しません。 下記のコードのどこが間違っているのか、どなたかお分かりですか? このコードでは、今日の日付をサーバから取得し、それから10日後の日付を計算して表示したいです。 $currentdate = .getdate(); $yyyy = $currentdate["year"]; $mm = $currentdate["mon"]; $dd = $currentdate["mday"]; $int_day = 10; $duedate = .date("y/m/d", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); echo "$duedate" また、上記のコードが動作するようになったとして、表示される日付は「2008/06/10」のようになるかと思いますが、これを「2008年06月10日」のように表示させる方法をご存知でしょうか? >$duedate = .date("y/m/d", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); 上記コードを下記のように変更してもだめです。 >$duedate = .date("y年m月d日", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); よろしくお願いします。

    • ベストアンサー
    • PHP
  • シェル内での文字列日付計算

    お世話になります。 シェルスクリプト内であるファイルからファイル名日付を取得し、 その日付の1日前の日付を取得するためにはどうしたらよいのでしょうか? 現在日時からの日付計算をする方法は見つけることできましたが、 文字列(yyyymmdd)から直接日付計算を行うためにはどうすればよいのでしょうか? 単純に`expr yyyymmdd - 1`のような計算では20121001 → 20121000のようになり、 日付として計算されません。 上記、ご存知の方がいればご教示いただきたく存じます。 よろしくお願いいたします。

  • ASPでの日付の取得について

    ASPにてシステム日付の3日前の日付を取得したいのですが、 下記のようにすると変数varAに 38735 という数字が入ってきます。 システム日付の1日後のvarBには 2006/01/22 と入るのですが、 x日前の日付の取得はどうすればよろしいのでしょうか? varA =DateDiff("d", 3, date) varB =DateAdd("d", 1, date)

  • UNIXシェル内での日付計算

    日付計算系の質問はたくさんありましたがこのタイプが 無かったんで質問させていただきます。 やりたいことは題名そのまんまなんですが、具体的に言う と、UNIX(今使ってるのがHP-UX11.0)上のバッチシェル で、前日の日付を取得したいのです。できれば中間ファ イル(一時ファイル)などを生成せずにシェル内で計算を 済ませたいのですが、何か方法はないのでしょうか。 (Ex.) 現在の日付   2002年1月1日 取得したい日付 2001年12月31日 具体的な方法とか書いてあるとさらにうれしいのですが・・・ それではよろしくお願いします。

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

    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
  • bシェルでシェル変数に変数に代入されている値の個数

    bシェル(Bourneシェル)で、シェル変数に変数に代入されている 値の個数を知りたいのですが、できるのでしょうか。 ----- #!/bin/sh A="1 2 3 4 5" echo $A 変数Aには、半角スペース区切りで、「1 2 3 4 5」と5個の値が 代入されています。 この設定されている値の個数、5を求めたいのですが、 どうすればよいのでしょうか。 Solaris8 Bシェル です。

  • PHPでPOSTした入力日の日付の+1日を取得したいです。

    PHPでPOSTした入力日の日付の+1日を取得したいです。 POSTされた値は以下です。 年 $y_pre = $_POST['year']; 月 $m_pre = $_POST['month']; 日 $d_pre = $_POST['day']; 以下はPOSTされた値の加工です。 日付加工  $s_ymd_pre = mktime(0,0,0,$m_pre,$d_pre,$y_pre); 日付加工  $ymd_pre = date("Y-m-d",$s_ymd_pre); ここから+1日のデータを取得したいです。 どうぞよろしくお願いいたします。