DateTime.ToOADate – 仅限时间

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

由于MSDN声明 :

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

尝试减去当前日期。

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

要么

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