Search code examples
c#wpfdatetimeoxyplot

Convert DateTime axis data back to DateTime


I've got a LineSeries where DataFieldX values are DateTime, visually its working great but after implementing OnClick for the chart I can't seem to convert the selected value back to DateTime:

        Plot plot = sender as Plot;
        var series = plot.GetSeriesFromPoint(new ScreenPoint(e.GetPosition(plot).X, e.GetPosition(plot).Y), 10);
        var result = series.GetNearestPoint(new ScreenPoint(e.GetPosition(plot).X, e.GetPosition(plot).Y), true);
        var data = result.DataPoint;
        DateTime dt = new DateTime();
        dt = dt.AddSeconds(data.X);

data.X is 41577.61596880656, and the time for the point in the chart is 31/10/2013 14:47. dt ends up being 01.01.0001 11:32:57

How can I successfully convert data.X back to DateTime?


Solution

  • You need to add days, not seconds to the date December 31, 1899

    DateTime dt = new DateTime(1899,12,31);
    dt = dt.AddDays(data.X);
    

    For some reason when I run this I'm off by 0.3 seconds. I'm assuming that is based off of the precision of the format the data is being stored in.

    enter image description here