#navi(../)
* 日付けの加算や減算を行う・DateAdd [#i3e7ca8f]
VBScriptでDateAdd関数を使って日付けの加算、減算に関するサンプルスクリプトおよび動作説明について以下に記します。

#contents
#htmlinsertpcsp(win-top.html,win-sp.html)

* 関連記事 [#e3197145]
-[[年月日時分秒のパートを抜き出す・DatePart>WSH/年月日時分秒のパートを抜き出す・DatePart]]
-[[指定した日付の曜日を取得する方法・WeekDay>WSH/指定した日付の曜日を取得する方法・WeekDay]]
-[[VBScriptで2つの日付の引き算(時間間隔)をする方法・DateDiff>WSH/2つの日付の引き算(時間間隔)をする方法・DateDiff]]


* DateAdd関数の書式 [#we9a1696]
DateAdd関数は以下のように使用します。
 DateAdd(インターバル, 加減算値, 基準となる日時)

インターバルに関しては以下の設定値になります。
|''設定値''|''内容 ''|
|yyyy|年|
|q|四半期|
|m|月|
|y|年間通算日|
|d|日|
|w|週日|
|ww|週|
|h|時|
|n|分|
|s|秒|

詳細は以下のURL(MSDN)を参照してみてください。~
http://msdn.microsoft.com/ja-jp/library/cc410235.aspx

* 日付けの加算や減算を行うDateAddd関数のサンプルコードと実行結果 [#m1afa4d7]
以下にDateAdd関数を使用したVBScriptサンプルコードおよび動作結果について記します。

** DateAdd関数のサンプルコード [#l377ece4]
以下にDateAdd関数のサンプルコードを記します。~
サンプル例
- 現在日時をもとにした年の加減算
- 現在日時をもとにした月の加減算
- 現在日時をもとにした日の加減算
- 文字列日時の加減算(年・月・日・時・分・秒)

#ref(DateAdd.vbs)
 n = Now
 WScript.Echo "--- Year sample ---"
 WScript.Echo "Now          : " & n
 d = DateAdd("yyyy", 1, n)
 WScript.Echo "Now + 1 Year : " & d
 d = DateAdd("yyyy", -1, n)
 WScript.Echo "Now - 1 Year : " & d
 
 WScript.Echo "--- Month sample ---"
 WScript.Echo "Now           : " & n
 d = DateAdd("m", 1, n)
 WScript.Echo "Now + 1 Month : " & d
 d = DateAdd("m", -1, n)
 WScript.Echo "Now - 1 Month : " & d
 
 WScript.Echo "--- Day sample ---"
 WScript.Echo "Now         : " & n
 d = DateAdd("d", 1, n)
 WScript.Echo "Now + 1 Day : " & d
 d = DateAdd("d", -1, n)
 WScript.Echo "Now - 1 Day : " & d
 
 WScript.Echo "--- Others ---"
 dt = "2012/1/10 01:02:03"
 WScript.Echo "dt = " & dt
 WScript.Echo "DateAdd(""yyyy"", 1, dt) = " & DateAdd("yyyy", 1, dt)
 WScript.Echo "DateAdd(""m"", -10, dt)  = " & DateAdd("m", -10, dt)
 WScript.Echo "DateAdd(""d"", 5, dt)    = " & DateAdd("d", 5, dt)
 WScript.Echo "DateAdd(""h"", -10, dt)   = " & DateAdd("h", 10, dt)
 WScript.Echo "DateAdd(""n"", 30, dt)   = " & DateAdd("n", 30, dt)
 WScript.Echo "DateAdd(""s"", -50, dt)   = " & DateAdd("s", 50, dt)

** DateAdd関数のサンプルコードの実行結果 [#sb7973b0]

 C:\wsh>cscript /nologo DateAdd.vbs
 --- Year sample ---
 Now          : 2012/07/19 23:27:15
 Now + 1 Year : 2013/07/19 23:27:15
 Now - 1 Year : 2011/07/19 23:27:15
 --- Month sample ---
 Now           : 2012/07/19 23:27:15
 Now + 1 Month : 2012/08/19 23:27:15
 Now - 1 Month : 2012/06/19 23:27:15
 --- Day sample ---
 Now         : 2012/07/19 23:27:15
 Now + 1 Day : 2012/07/20 23:27:15
 Now - 1 Day : 2012/07/18 23:27:15
 --- Others ---
 dt = 2012/1/10 01:02:03
 DateAdd("yyyy", 1, dt) = 2013/01/10 1:02:03
 DateAdd("m", -10, dt)  = 2011/03/10 1:02:03
 DateAdd("d", 5, dt)    = 2012/01/15 1:02:03
 DateAdd("h", -10, dt)   = 2012/01/10 11:02:03
 DateAdd("n", 30, dt)   = 2012/01/10 1:32:03
 DateAdd("s", -50, dt)   = 2012/01/10 1:02:53

上記の結果の1つ目は、現在日時から年を1年プラスした値と年を1年マイナスした値を表示しています。~
上記の結果の2つ目は、現在日時から月を1ヶ月プラスした値と月を1ヶ月マイナスした値を表示しています。~
上記の結果の3つ目は、現在日時から日を1日プラスした値と日を1日マイナスした値を表示しています。~
上記の結果の4つ目は、直接入力した文字列日時に対して年・月・日・時・分・秒の加減算を行っています。

#htmlinsertpcsp(win-btm.html,win-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS