DateTime.ToOADate - 仅限时间

时间:2013-04-28 10:38:29

标签: c#

我有一个带有当前日期的“DateTime”var(DateTime.Now)。 我可以将其转换为OADate-Format(41392,524432)作为示例。 但是我怎么能转换这个,我只是得到没有约会的时间? 例如,1分4秒(01:04)的格式为0,04444444。

2 个答案:

答案 0 :(得分:9)

MSDN states that

  

OLE自动化日期实现为浮点数,其积分成分是1899年12月30日午夜之前或之后的天数

您可能希望将其用作基准日期:

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();

答案 1 :(得分:1)

尝试减去当前日期。

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

double result = oaDate - Math.Floor(oaDate);