DateSerial 関数 (Visual Basic)
更新 : 2007 年 11 月
時刻情報が午前 0 時 (00:00:00) に設定された、指定の年、月、および日を表す日付型 (Date) 型の値を返します。
Public Function DateSerial( _
ByVal [Year] As Integer, _
ByVal [Month] As Integer, _
ByVal [Day] As Integer _
) As DateTime
パラメータ
Year
必ず指定します。1 ~ 9999 の整数型 (Integer) の式です。ただし、この範囲より小さい値も指定できます。Year が 0 ~ 99 の場合は、後の「解説」で説明するように 1930 ~ 2029 として解釈されます。Year が 1 より小さい場合は、現在の年から引かれます。Month
必ず指定します。1 ~ 12 の整数型 (Integer) の式です。ただし、この範囲外の値も指定できます。Month の値から 1 が引かれ、計算された年の 1 月に加えられます。つまり、(Month - 1) が 1 月に加算されます。年は必要に応じて再計算されます。次の結果はこの効果を示しています。Month が 1 の場合、結果は計算された年の 1 月です。
Month が 0 の場合、結果は前年の 12 月です。
Month が -1 の場合、結果は前年の 11 月です。
Month が 13 の場合、結果は翌年の 1 月です。
Day
必ず指定します。1 ~ 31 の整数型 (Integer) の式です。ただし、この範囲外の値も指定できます。Day の値から 1 が引かれ、計算された月の第 1 日に加えられます。つまり、(Day - 1) が月の 1 日に加算されます。月と年は、必要に応じて再計算されます。次の結果はこの効果を示しています。Day が 1 の場合、結果は計算された月の 1 日です。
Day が 0 の場合、結果は前月の末日です。
Day が -1 の場合、結果は前月の最後から 2 日目です。
Day が当月の末日を過ぎている場合、結果は翌月の該当日です。たとえば、Month が 4 で Day が 31 の場合、結果は 5 月 1 日です。
解説
Windows 98 または Windows 2000 では、引数 Year の 2 桁の年は、ユーザー定義のコンピュータ設定に基づいて解釈されます。既定の設定では 0 ~ 29 の値は 2000 ~ 2029 年、30 ~ 99 の値は 1930 ~ 1999 年と解釈されます。これ以外の Year 引数では、4 桁の数値 (たとえば 1924) を使用してください。
以前のバージョンの Windows では、2 桁の年はこの既定に基づいて解釈されます。関数が必ず正しい値を返すようにするには、4 桁の Year を使用してください。
負の値、0、および正の値の引数を次に示します。ここでは、DateSerial 関数は、本年より 10 年前の年の 3 月 1 日の前日 (10 年前の 2 月末日) を表す日付型 (Date) の値を返します。
Dim EndFeb As Date = DateSerial(-10, 3, 0)
Month または Day が通常の範囲を超えた場合は、その上の単位に繰り上げられます。たとえば、32 日を指定すると、Month の値に応じて、1 か月と 1 ~ 4 日として評価されます。Year が 9999 より大きい場合、または引数のいずれかが -2,147,483,648 ~ 2,147,483,647 の範囲外の場合は、ArgumentException エラーが発生します。3 つの引数で指定された日付が 1 年 1 月 1 日 00:00:00 よりも前の場合、または 9999 年 12 月 31 日 23:59:59 よりも後の場合は、ArgumentOutOfRangeException エラーが発生します。
日付型 (Date) には時刻コンポーネントが含まれます。DateSerial は、これらすべてのコンポーネントを 0 に設定するため、返される値は計算された日の始まりを表します。
すべての日付型 (Date) の値は DateTime 構造体でサポートされているため、メソッドには日付型 (Date) の値をアセンブルするときの追加のオプションがあります。たとえば、オーバーロードされた DateTime コンストラクタの 1 つを使用し、コンポーネントを任意に組み合わせて日付型 (Date) の変数を設定できます。NewDateTime に 1978 年 5 月 6 日午前 8:30 の 0.1 秒前を設定する例を次に示します。
Dim NewDateTime As Date = New Date(1978, 5, 6, 8, 29, 59, 900)
使用例
次の例は、DateSerial 関数を使って、指定された年、月、日に対応する日付を取得します。
Dim MyDate As Date
' MyDate contains the date for February 12, 1969.
MyDate = DateSerial(1969, 2, 12) ' Return a date.
必要条件
名前空間 : Microsoft.VisualBasic
モジュール : DateAndTime
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)