DateAdd 関数 (Visual Basic)

更新 : 2007 年 11 月

指定された時間間隔を加算した日付と時刻を日付型 (Date) の値で返します。

Public Overloads Function DateAdd( _
   ByVal Interval As DateInterval, _
   ByVal Number As Double, _
   ByVal DateValue As DateTime _
) As DateTime
' -or-
Public Overloads Function DateAdd( _
   ByVal Interval As String, _
   ByVal Number As Double, _
   ByVal DateValue As Object _
) As DateTime

パラメータ

  • Interval
    必ず指定します。加算する時間間隔を表す DateInterval 列挙値または文字列 (String) 式です。

  • Number
    必ず指定します。倍精度浮動小数点数型 (Double)。加算する間隔数を表す浮動小数点数式です。Number には、将来の日時を取得する場合は正の数を指定し、過去の日時を取得する場合は負の数を指定します。Number の小数部分は無視されます。

  • DateValue
    必ず指定します。日付型 (Date) 間隔を追加する日時を表す式です。DateValue 自体は、呼び出しの実行中に変更されません。

設定

Interval 引数の設定値は次のいずれかです。

列挙値

数字列

加算する時間間隔の単位

DateInterval.Day

d

日付 : 整数。小数点以下は切り捨てられます。

DateInterval.DayOfYear

y

日付 : 整数。小数点以下は切り捨てられます。

DateInterval.Hour

h

時 : 整数。小数点以下は切り捨てられます。

DateInterval.Minute

n

分 : 整数。小数点以下は切り捨てられます。

DateInterval.Month

m

日付 : 整数。小数点以下は切り捨てられます。

DateInterval.Quarter

q

四半期 : 整数値に切り捨てられます。

DateInterval.Second

s

秒 : 整数。小数点以下は切り捨てられます。

DateInterval.Weekday

w

日付 : 整数。小数点以下は切り捨てられます。

DateInterval.WeekOfYear

ww

週 : 整数値に切り捨てられます。

DateInterval.Year

yyyy

日付 : 整数。小数点以下は切り捨てられます。

例外

例外の種類

エラー番号

条件

InvalidCastException

13

DateValue を日付型 (Date) に強制変換できません。

ArgumentException

5

Interval が無効です。

ArgumentOutOfRangeException

9

計算された日付が西暦 1 年 1 月 1 日 00:00:00 より前であるか、西暦 9999 年 12 月 31 日 23:59:59 より後です。

非構造化エラー処理を使用する Visual Basic 6.0 アプリケーションをアップグレードする場合は、"エラー番号" の列を参照してください(エラー番号を Number プロパティ (Err オブジェクト) と比較することもできます)。ただし、可能であれば、このようなエラー制御は Visual Basic の構造化例外処理の概要 に置き換えることを検討してください。

解説

DateAdd 関数を使用すると、ある日付に対して、指定した時間間隔を加えたり引いたりできます。たとえば、現在から 30 日後の日付や、現在から 45 分前の時刻などを計算できます。

DateValue に日を追加するには、DateInterval.Day、DateInterval.DayOfYear、または DateInterval.Weekday を使用します。DayOfYear と Weekday は間隔とは関係ないので、上記 3 つは同様に扱われます。

DateAdd 関数は、無効な日付を返しません。結果の日付部分は、必要に応じて、結果の年における月の最後の日付になるように調整されます。次の例では、1 月 31 日に 1 か月を加えています。

Dim NextMonth As Date = DateAdd(DateInterval.Month, 1, #1/31/1995#)

この例では、DateAdd は #2/31/1995# ではなく #2/28/1995# を返します。DateValue が #31-Jan-1996# の場合は、1996 年が閏年であるため #29-Feb-1996# を返します。

hcxe65wz.alert_note(ja-jp,VS.90).gifメモ :

DateAdd は、System.Globalization 名前空間にある CultureInfo クラスの CurrentCulture プロパティに設定された現在のカレンダーを使用します。CurrentCulture の既定値は、[コントロール パネル] の設定によって決まります。

すべての日付型 (Date) の値が DateTime 構造体を使用できるため、メソッドでは時間間隔を加算する際に追加のオプションを指定できます。たとえば、次に示すように、最も近いミリ秒に丸められる小数の日付を日付型 (Date) の変数に加算できます。

Dim NextTime As Date = Now        ' Current date and time.
NextTime = NextTime.AddDays(3.4)  ' Increment by 3 2/5 days.

使用例

次の例は、ユーザーに日付とそれに加算する月数の入力を求めた後、DateAdd 関数を使って加算後の日付を表示します。

Dim Msg, Number, StartDate As String   'Declare variables.
Dim Months As Double
Dim SecondDate As Date
Dim IntervalType As DateInterval
IntervalType = DateInterval.Month   ' Specifies months as interval.
StartDate = InputBox("Enter a date")
SecondDate = CDate(StartDate)
Number = InputBox("Enter number of months to add")
Months = Val(Number)
Msg = "New date: " & DateAdd(IntervalType, Months, SecondDate)
MsgBox(Msg)

必要条件

名前空間 : Microsoft.VisualBasic

モジュール : DateAndTime

アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)

参照

参照

DateDiff 関数 (Visual Basic)

DatePart 関数 (Visual Basic)

Day 関数 (Visual Basic)

Format 関数

Now プロパティ

Weekday 関数 (Visual Basic)

Year 関数 (Visual Basic)

日付型 (Date) (Visual Basic)

System