Calculate Time Span Between Points

S

Stuart Shay

Hello All:


In the code below I have a list of Points, I want to calculate the
timespan in seconds between the points,
What is the best way to do this?

Thanks
Stuart

public class TrackPoint
{
public virtual int Id { get; set; }
public virtual DateTime? Time { set; get; }
public virtual decimal? TimeSpanSeconds { get; set; }

}

List<TrackPoint> trackPoints = new List<TrackPoint>();
trackPoints.Add(new TrackPoint { Id = 1, Time =
DateTime.Parse("1/2/2010 4:00:00 PM"), });
trackPoints.Add(new TrackPoint { Id = 2, Time =
DateTime.Parse("1/2/2010 4:01:30 PM"), });
trackPoints.Add(new TrackPoint { Id = 3, Time =
DateTime.Parse("1/2/2010 4:02:30 PM"), });
trackPoints.Add(new TrackPoint { Id = 4, Time =
DateTime.Parse("1/2/2010 4:03:00 PM"), });

foreach (var trackPoint in trackPoints)
{
Console.WriteLine(trackPoint.Id + " " + trackPoint.Time + " " +
trackPoint.TimeSpanSeconds );
}
 
A

Arne Vajhøj

In the code below I have a list of Points, I want to calculate the
timespan in seconds between the points,
What is the best way to do this?
public class TrackPoint
{
public virtual int Id { get; set; }
public virtual DateTime? Time { set; get; }
public virtual decimal? TimeSpanSeconds { get; set; }

}

List<TrackPoint> trackPoints = new List<TrackPoint>();
trackPoints.Add(new TrackPoint { Id = 1, Time = DateTime.Parse("1/2/2010
4:00:00 PM"), });
trackPoints.Add(new TrackPoint { Id = 2, Time = DateTime.Parse("1/2/2010
4:01:30 PM"), });
trackPoints.Add(new TrackPoint { Id = 3, Time = DateTime.Parse("1/2/2010
4:02:30 PM"), });
trackPoints.Add(new TrackPoint { Id = 4, Time = DateTime.Parse("1/2/2010
4:03:00 PM"), });

foreach (var trackPoint in trackPoints)
{
Console.WriteLine(trackPoint.Id + " " + trackPoint.Time + " " +
trackPoint.TimeSpanSeconds );
}

Use an oldfashioned for loop starting at 1 and simply subtract
tp.Time - tp[i-1].Time.

Arne
 
S

Stuart Shay

Arne:

Thanks this appears to work

public List<TrackPoint> TrackPointTimeDelta(List<TrackPoint>
trackPoints)
{
for (int i = 1; i < trackPoints.Count; i++)
{
TimeSpan duration = (DateTime)trackPoints.Time -
(DateTime)trackPoints[i - 1].Time;
trackPoints.TimeSpanSeconds = duration.TotalSeconds;
}

return trackPoints;
}





Arne Vajhøj said:
In the code below I have a list of Points, I want to calculate the
timespan in seconds between the points,
What is the best way to do this?
public class TrackPoint
{
public virtual int Id { get; set; }
public virtual DateTime? Time { set; get; }
public virtual decimal? TimeSpanSeconds { get; set; }

}

List<TrackPoint> trackPoints = new List<TrackPoint>();
trackPoints.Add(new TrackPoint { Id = 1, Time = DateTime.Parse("1/2/2010
4:00:00 PM"), });
trackPoints.Add(new TrackPoint { Id = 2, Time = DateTime.Parse("1/2/2010
4:01:30 PM"), });
trackPoints.Add(new TrackPoint { Id = 3, Time = DateTime.Parse("1/2/2010
4:02:30 PM"), });
trackPoints.Add(new TrackPoint { Id = 4, Time = DateTime.Parse("1/2/2010
4:03:00 PM"), });

foreach (var trackPoint in trackPoints)
{
Console.WriteLine(trackPoint.Id + " " + trackPoint.Time + " " +
trackPoint.TimeSpanSeconds );
}

Use an oldfashioned for loop starting at 1 and simply subtract
tp.Time - tp[i-1].Time.

Arne
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top