タイトル
TOPIT関連覚え書きシェル(Shell)サンプル → This Page
シェル(Shell)サンプル

現在日時から指定の日・時間を足した日付文字列を出力

前提

実施環境(以下の両方でテストしてます)
Red Hat 5.3+bash-3.2
Windows7+Cygwin1.7.9

サンプル

現在日時から指定の日・時間を足した日付文字列を出力成します。
(マイナス値を指定してもOK)

これもたいしたサンプルではないですが、自分の備忘録用に。

意外と知らない(かもしれない)dateコマンドの-dオプションに複数条件を付加
今回は x day x hour と、日付+時間を記述。

getDiffDateTime.sh
#!/bin/sh

# --------------------------------------------------
# 現在日時から指定の日・時間を足した日付文字列を出力
# --------------------------------------------------
# 引数1:日
# 引数2:時間
# --------------------------------------------------

DIFFDATE=$1
DIFFHOUR=$2

if [ $# -eq 0 ]; then
	DIFFDATE=0
	DIFFHOUR=0
elif [ $# -eq 1 ]; then
	DIFFHOUR=0
fi

DATE=`date -d "${DIFFDATE} day ${DIFFHOUR} hour" +"%Y/%m/%d %H:%M:%S"`

echo ${DATE}

exit 0


実行結果

# 引数なし(現在日時)
sh getDiffDateTime.sh
2011/08/09 23:37:46

# 明日
sh getDiffDateTime.sh 1
2011/08/10 23:38:20

# 昨日
sh getDiffDateTime.sh -1
2011/08/08 23:38:40

# 10時間後
sh getDiffDateTime.sh 0 10
2011/08/10 09:39:12

# 5時間前
sh getDiffDateTime.sh 0 -5
2011/08/09 18:39:33

# 5日後、3時間前
sh getDiffDateTime.sh 5 -3
2011/08/14 20:40:09


サンプルのダウンロード

サンプル一式(zip)
文字コードUTF-8、改行コードLFです。

更新履歴

2011/08/09 本ページ新規追加


TOPIT関連覚え書きシェル(Shell)サンプル → This Page