我有一个带有当前日期(DateTime.Now)的“DateTime”变量。例如,我可以将其转换为 OADate-Format (41392,524432)。但是我怎么能转换这个,我只是得到没有日期的时间?例如 1 分 4 秒 (01:04) 在这种格式中是 0,04444444。
问问题
18884 次
2 回答
10
由于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();
于 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 回答