DateTime をユリウス日付に変換し、Windows 7 で逆にしようとしています。
public static double ToJulianDate(this DateTime dt) {
return dt.ToOADate() + 2415018.5;
}
public static DateTime Julian2DT(this double julian) {
return DateTime.FromOADate(julian - 2415018.5);
}
以下のようにこれら2つの機能をテストすると
var dt = DateTime.Now;
dt.ToString("yyyy-MM-dd HH:mm:ss.ffffff").Dump();
dt.ToJulianDate().Julian2DT().ToString("yyyy-MM-dd HH:mm:ss.ffffff").Dump();
逆のユリウス日付は、常に元の DateTime 値と数百マイクロ秒だけわずかに異なる値を持ちます。
間違ったコードを書いたのでしょうか、それとも Windows のタイム システムに数マイクロ秒の誤差がありますか?