3

現在の日付(DateTime.Now)の「DateTime」変数があります。例として、これを OADate-Format (41392,524432) に変換できます。しかし、どうすればこれを変換できますか?日付なしで時間を取得しているだけです? たとえば、1 分 4 秒 (01:04) は、この形式では 0,04444444 です。

4

2 に答える 2

10

MSDNが次のように述べているため:

OLE オートメーションの日付は、整数コンポーネントが 1899 年 12 月 30 日の午前 0 時前後の日数である浮動小数点数として実装されます。

おそらくそれを基準日として使用したいでしょう:

DateTime oaBaseDate = new DateTime(1899,12,30);
double result = oaBaseDate.Add(DateTime.Now.TimeOfDay).ToOADate();

または、マジック ナンバー (マジック デート) が気に入らない場合は、次のようにします。

DateTime oaBaseDate = DateTime.FromOADate(0);
double result = oaBaseDate.Add(DateTime.Now.TimeOfDay).ToOADate();
于 2013-04-28T10:53:03.847 に答える
1

現在の日付を減算してみてください。

double oaDate = DateTime.Now.ToOADate();
double result = oaDate - (int)(oaDate);

または

double result = oaDate - Math.Floor(oaDate);
于 2013-04-28T11:09:08.547 に答える