C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のDateTime.FromOADate()メソッドの使い方をわかりやすく解説

DateTime.FromOADate()メソッドとは

C#のDateTime.FromOADate()メソッドは、指定されたOLEオートメーション日付(OLE Automation Date)に対応するDateTime値を返す静的メソッドです。

OLEオートメーション日付は、ExcelなどのMicrosoft Office製品やCOMコンポーネントで使われる日付形式で、1899年12月30日を基準日(値0)として、そこからの経過日数をdouble型の数値で表します。整数部分が日数、小数部分が時刻(1日に対する割合)を表します。

構文

DateTime.FromOADate()メソッドの構文は以下の通りです。

public static DateTime FromOADate (double val);

パラメータ「val」には、変換対象となるOLEオートメーション日付の値(double型)を指定します。戻り値としては、その値に対応するDateTimeオブジェクトが返されます。

使用例1:基本的な使い方

まずは、DateTime.FromOADate()メソッドの基本的な実装例を見てみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTime d1 = DateTime.FromOADate(1.0);
        Console.WriteLine("DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
    }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

DateTime = 31 December 1899, 12:00:00

この例では、OLEオートメーション日付として「1.0」を渡しているため、基準日である1899年12月30日の翌日にあたる1899年12月31日が返されます。

使用例2:複数の値を変換する

続いて、異なる値を指定した場合の動作を確認してみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTime d1 = DateTime.FromOADate(375765.0);
        DateTime d2 = DateTime.FromOADate(0.0);
        Console.WriteLine("DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
        Console.WriteLine("New DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d2);
    }
}

出力結果

このプログラムを実行すると、以下の出力が得られます。

DateTime = 21 October 2928, 12:00:00
New DateTime = 30 December 1899, 12:00:00

「375765.0」を指定した場合は2928年10月21日、「0.0」を指定した場合は基準日の1899年12月30日が出力されます。

まとめ

DateTime.FromOADate()メソッドを使えば、Excelのセルから取得したシリアル値などを、C#のDateTime型へ簡単かつ正確に変換できます。Office連携アプリケーションの開発では頻繁に活用される重要なメソッドなので、ぜひ覚えておきましょう。

  1. C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法

    C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。 基本構文 DateTime.AddDays()メソッドの構文は以下のとおりです。 public DateTime AddDays (double days); 引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動

  2. C#のDateTime.Add()メソッドとは?構文と使い方を実例付きで解説

    C#のDateTime.Add()メソッドは、指定したTimeSpanの値を現在のDateTimeインスタンスに加算し、その結果として新しいDateTimeオブジェクトを返すメソッドです。元のインスタンス自体は変更されず、計算結果が新しいオブジェクトとして生成される点が特徴です。基本構文DateTime.Add()メソッドの構文は以下の通りです。public DateTime Add (TimeSpan val);引数 val には、加算する時間間隔を表す TimeSpan を指定します。正の値を渡せば日時が進み、負の値を渡せば日時が遡ります。使用例1:日付を加算するまずは、115日分のTim