日付/時刻

LotusScript® には、このような日付/時刻データ型はありません。日付/時刻の値を持つ変数は宣言できません。ただし、LotusScript では内部的に日付が認識され、日付/時刻の値を入力、取得、操作するために使用する関数の集合が用意されています。日付/時刻の値は、8 バイト (倍精度) 浮動小数点数値として格納されます。整数部分は西暦 100 年 1 月 1 日から数えた通算日を表し、小数部分は時刻を 1 日の分数として表します。日付用に許容される値の範囲は、-657434 (西暦 100 年 1 月 1 日) から 2958465 (9999 年 12 月 31 日) までです。0 は西暦 1899 年 12 月 30 日を表します。

日付/時刻の値を保持して操作するには、Variant 型の変数を使用します。このような値は、以下の関数のいずれかを呼び出すことにより、生成できます。

関数/ステートメント

目的

CDat 関数

数値または文字列の式を日付/時刻の Variant 値に変換します。

Date 関数

システム日付を返します。

Date ステートメント

システムの日付を設定します。

DateNumber 関数

年、月、日を日付の値に変換します。

DateValue 関数

文字列を日付の値に変換します。

Day 関数

日付/時刻の式から月に対する日付 (1 ~ 31) を返します。

FileDateTime 関数

ファイルが最後に保存された日付と時刻を返します。

Format 関数

数値、日付/時刻の値、または文字列をフォーマットします。

Hour 関数

日付/時刻の式から、1 日のうちの経過時間数 (0~24) を返します。

IsDate 関数

Variant 型の日付/時刻の値の場合は True (-1) を返し、それ以外の場合は False (0) を返します。

Minute 関数

日付/時刻の式から、その 1 時間内に経過した分数 (0~59) を返します。

Month 関数

日付/時刻の式から、月 (1~12) を返します。

Now 関数

現在のシステム日付/時刻を返します。2

Second 関数

日付/時刻の式から、その 1 分間に経過した秒数 (0~59) を返します。

Time 関数

システム時刻を返します。値の日付部分はゼロまたは 1899 年 12 月 30 日に設定されます。

Time ステートメント

システムの日付を設定します。

TimeNumber 関数

時分秒を日付/時刻の小数点以下の値 (分数部分) に変換します。

Timer 関数

午前 0 時からの経過した時間を秒単位で返します。

TimeValue 関数

文字列を日付/時刻の分数の値に変換します。

Today 関数

システム日付 (Date 関数と同等) を返します。

WeekDay 関数

日付/時刻の式から週の何日目か (1~7) を返します。

Year 関数

日付/時刻の式から年を 4 桁の整数として返します。

注: 日付/時刻の値を含む Variant 型の変数を加算して、日付/時刻値を含む Variant 型の変数をもう 1 つ作成してもよいです。ただし、日付/時刻の値を含む Variant 型の変数をもう 1 つの Variant 型の変数から減算すると、Double の Variant 型になります。Cdat 関数を使用して変数を日付/時刻の値に変換し直す必要があります。

DataType または TypeName 関数を使用すると、Variant 型の変数に日付または日付/時刻の値が入っているかどうかを調べられます。このような値が入っている場合、DataType は値 7 を返し、TypeName は DATE を返します。

次の例は、日付と日付/時刻の値を取得できるさまざまな方法、それらの値を Variant 型の変数に代入する方法、それらの値に関して実行できるいくつかの操作 (ある期間の計算や、指定された日付の曜日を特定することなど) を示しています。

今日が 1994 年 10 月 26 日で、時刻が 7:49:23 AM だとして、次の変数を宣言します。

Dim theInstantV As Variant
Dim theDateV As Variant
Dim theDateValV As Variant
Dim myDate As String

次の例では、Now 関数を呼び出して現在の日付と時刻を取得し、その結果を Variant 型の変数 InstantV に代入します。

theInstantV = Now
Print theInstantV
' Output: 10/26/94 7:49:23 AM

次の例では、(月の) 日にちと時間 (時分秒の時の部分) に対応する整数を表示します。

Print Day(theInstantV) & " " & Hour(theInstantV)
' Output: 26 7

次の例では、現在の日付を Variant 型の変数 theDateV に代入します。

theDateV = Date
Print theDateV
' Output: 10/26/94
Print theDateV - 1
' Output: 10/25/94 

次の例では、現在の日付の値を Double 型の値に変換します。

Print CDbl(theDateV)
' Output: 34633
' Convert a value of type Double
' to a date value, assign it to a
' Variant variable, and print it.
theDateV = CDat(34633)
Print theDateV
' Output: 10/26/94

次の例では、現在の年、月、日の整数表記を取得し、月と日の値を増やして、その結果をある Integer 型の変数に代入し、DateNumber に渡します。DateNumber はそれらの値に基づいて日付を計算して戻し、Variant 型の変数 theDateV に代入します。

y% = Year(theDateV)
m% = Month(theDateV) + 1
d% = Day(theDateV) + 1
theDateV = DateNumber(y%, m%, d%)
Print theDateV
' Output: 11/27/94

次の例では、日付として解釈できる文字列を String 型の変数 myDate$ に代入し、それを日付/時刻の値に変換して計算を実行し (1 日を減算する)、結果の日付を返します。

myDate$ = "October 28, 1994"
Print DateValue(myDate$) - 1
' Output: 10/27/94
theDateV = DateValue(myDate$)
' Check the data type of the value
' held by the Variant variable theDateV.
Print TypeName(theDateV)
' Output: DATE

次の例では、特定の出力形式で日付を表示します。

Print Format(DateValue("10-18-14"), "mmm-d-yyyy")
' Output: Oct-18-1914
注: 2 桁年数の解釈の仕方は、さまざまな製品で異なります。例えば Notes では、同じ値を Oct-18-2014 と表示します。

次の例では、現在の日付の日付/時刻の値を Double 型の値に変換します。

Print CDbl(Date)
' Output: 34633

次の例では、特定の日付の日付/時刻の値を Double 型の値に変換します。これは、値を String 型として DateValue に渡し、その結果を (Double 型の値に変換する) CDbl に渡すことによって行います。

Print CDbl(DateValue("10-18-14"))
' Output: 5405
Print CDbl(Date) - CDbl(DateValue("10-18-14"))
' Output: 29228

次の例では、2 つの日付の間の日数を計算します。

theDateV = DateValue(Date)
' theDateV = 10/26/94
y% = Year(theDateV)
m% = Month(theDateV) + 1
d% = Day(theDateV) + 1
theDateValV = DateNumber(y%, m%, d%)
' theDateValV = 11/27/94
Print CDbl(theDateValV) - CDbl(theDateV)
' Output: 32
注: 最初に Double に変換しないで日付の減算を行うと、Double の Variant 型になります。

次の例では、特定の日付が何曜日になるかを調べます。日曜日は 1 です。

Print Weekday(theDateValV)
' Output: 1 

値の整数部分がゼロの場合、その値は時刻値として解釈されます。

Print CDat(0)		'Prints "12:00:00 AM"
Print CDat(.0)		'Prints "12:00:00 AM"
Print CDat(0.0)		'Prints "12:00:00 AM"
Print CDat(0.1)		'Prints "2:24:00 AM"

値の小数部分がゼロの場合、その値は日付値として解釈されます。

Print CDat(1.0)		'Prints "12/31/1899"
Print CDat(2.0)		'Prints "1/1/1900"
Print CDat(123456.0)	'Prints "1/3/2238"