以下は、日付(DateTime)値と時間間隔(TimeSpan)値に関する関数です。
DATE | DATEDIF | DATEVALUE | DAY |
DAYS | DAYS360 | EDATE | EOMONTH |
HOUR | ISO.CEILING | MINUTE | MONTH |
NETWORKDAYS | NETWORKDAYS.INTL | NOW | SECOND |
TIME | TIMEVALUE | TODAY | WEEKDAY |
WEEKNUM | WORKDAY | WORKDAY.INTL | YEAR |
YEARFRAC |
これらのほとんどの関数に対しては、日時の値を表す引数として DateTime オブジェクトまたは TimeSpan オブジェクトを指定できます。DateTime は DATE(2003,7,4) 関数などの結果として返されるオブジェクトであり、TimeSpan は TIME(12,0,0) 関数などの結果として返されるオブジェクトです。 Excel との互換性を維持するために、日時を数値(37806.5 など)で指定することも、または文字列("7/4/2003 12:00" など)で指定することもできます。 数値と文字列は、DateTime クラスのインスタンスとして変換されます。
日付を数値で表す場合は「x.y」の形式を使用します。x は 1899 年 12 月 30 日以降の日数を表し、y は1日未満の小数値を表します。 つまり、左側の数値は日を表します。 時刻を表す数値は、0〜0.99999999 の範囲の小数値です。これは、0:00:00(午前 12 時0分0秒)〜23:59:59(午後 11 時 59 分 59 秒)の時刻を表します。
次の3つの数式は、同じ結果となります。
YEAR(DATE(2004,8,9))
YEAR(38208)
YEAR("8/9/2004")
Excel で有効な日付の範囲は 1900 年1月1日〜9999 年 12 月 31 日であり、.NET framework では DateTime クラスのインスタンスの有効範囲は 0001 年1月1日〜9999 年 12 月 31 日です。SPREAD for Windows Formsでは一般的に、範囲が広いほうの .NET framework の有効範囲をサポートしています。 Excel との互換性を維持するために、一部の関数では狭い範囲の日付だけが有効にされています。たとえば、DATE 関数では 1900 年1月1日以降の日付しか入力できません。
Excel に対してインポートまたはエクスポートを行うと、一部の値が変更されることがあります。 Excel と OLE オートメーションではいずれも、日時は倍精度型によって表されます。倍精度値の整数部分は、基準日以降の日数を表します。 Excel では、基準日として 1900 年1月1日が使用され、1900 年はうるう年として扱われます。 これに対し Microsoft 社は、OLE オートメーションでの基準日として 1899年 12月 31 日が使用されるように修正しています。 OLE オートメーションと同様、SPREAD for Windows Formsでも 1900 年をうるう年とはみなさず、基準日を 1899年 12月 31 日としています。
関数の種類の一覧については、「関数の種類」を参照してください。