C# 将DateTime转换为Double

C# 将DateTime转换为Double,c#,visual-studio,datetime,charts,zooming,C#,Visual Studio,Datetime,Charts,Zooming,我已经从列表框中单击的项目创建了一个日期时间值。它的格式是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

我已经从列表框中单击的项目创建了一个日期时间值。它的格式是
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无效”


有什么想法吗?

你可以使用
DateTime.ToOADate()
,如果你用double表示ole自动化日期,你必须使用ToOADate()方法,如下所示:

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

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

谢谢

作为参考,以下方法效果最好

            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;
ToOADate()
此处其他答案中提到的方法不准确

最好使用这个:

double timestamp = DateTime.UtcNow.Ticks;

如果示例更改为
(double)DateTime.Now.AddTicks(1000).ToOADate()
,那么他在执行
DateTime.Now.AddTicks(1000).Ticks时会丢失精度。

因为您试图将
DateTime
转换为
double
,而您不能这样做。您希望从
DateTime
中获得什么
double
值?给出一个你想要的输入和输出值的例子