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連携アプリケーションの開発では頻繁に活用される重要なメソッドなので、ぜひ覚えておきましょう。
-
C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法
C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。 基本構文 DateTime.AddDays()メソッドの構文は以下のとおりです。 public DateTime AddDays (double days); 引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動
-
C#のDateTime.Add()メソッドとは?構文と使い方を実例付きで解説
C#のDateTime.Add()メソッドは、指定したTimeSpanの値を現在のDateTimeインスタンスに加算し、その結果として新しいDateTimeオブジェクトを返すメソッドです。元のインスタンス自体は変更されず、計算結果が新しいオブジェクトとして生成される点が特徴です。基本構文DateTime.Add()メソッドの構文は以下の通りです。public DateTime Add (TimeSpan val);引数 val には、加算する時間間隔を表す TimeSpan を指定します。正の値を渡せば日時が進み、負の値を渡せば日時が遡ります。使用例1:日付を加算するまずは、115日分のTim