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
值?给出一个你想要的输入和输出值的例子