11

我从列表框中单击的项目创建了 DateTime 值。它的格式是dd/MM/yyyy hh:mm:ss。我想放大十分钟的时间,中间的点击事件。我当前的代码如下(其中 zoom_time 是要在我的图表上缩放到的日期时间;

chart1.ChartAreas[0].AxisX.Minimum = (Convert.ToDouble(zoom_time.AddMinutes(-5)));
chart1.ChartAreas[0].AxisX.Maximum = (Convert.ToDouble(zoom_time.AddMinutes(5)));

这打破了说

“从 DateTime 到 double 的无效转换”

有什么想法吗?

4

4 回答 4

13

DateTime.ToOADate()如果您的意思是 ole 自动化日期,您可以使用double

于 2013-07-23T08:23:40.840 回答
3

感谢那!

作为参考,以下效果最好;

            double start = (zoom_time.AddMinutes(-1)).ToOADate();
            double end = (zoom_time.AddMinutes(1)).ToOADate();

            chart1.ChartAreas[0].AxisX.Minimum = start;
            chart1.ChartAreas[0].AxisX.Maximum = end;
于 2013-07-24T09:27:23.113 回答
2

您必须使用 ToOADate() 方法,如下所示:

chart1.ChartAreas[0].AxisX.Minimum = zoom_time.AddMinutes(-5).ToOADate();
chart1.ChartAreas[0].AxisX.Maximum = zoom_time.AddMinutes(5).ToOADate();

编辑:

在回答之前应该刷新我的页面。:)

于 2013-07-23T08:28:04.263 回答
0

ToOADate()此处其他答案中提到的方法不准确!

最好使用这个:

double timestamp = DateTime.UtcNow.Ticks;

如果示例更改为精度没有丢失,请参阅他在执行时丢失精度的帖子。DateTime.Now.AddTicks(1000).ToOADate()(double)DateTime.Now.AddTicks(1000).Ticks

于 2020-12-31T16:19:23.520 回答