using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TrainInfomationProviderService.TrainInfo.Entities { public class TrainTransitOnceResult { public TrainLineSegment First { get; private set; } public TrainLineSegment Second { get; private set; } /// /// 不推荐车次 /// public bool NotRecommand { get; private set; } /// /// 创建 的新实例(TrainTransitOnceResult) /// /// /// public TrainTransitOnceResult(TrainLineSegment first, TrainLineSegment second, DateTime date, bool notRecommand=false) { First = first; Second = second; InitTimeInfo(date); NotRecommand = notRecommand; } void InitTimeInfo(DateTime date) { FirstTrainLeftDate = date.Add(First.From.Left.Value.AddDays(-First.From.Left.Value.Days)); FirstTrainArriveDate = FirstTrainLeftDate.Add(First.ElapsedTime); SecondTrainLeftDate = FirstTrainArriveDate.Date.Add(Second.From.Left.Value.AddDays(-Second.From.Left.Value.Days)); if (SecondTrainLeftDate < FirstTrainArriveDate) SecondTrainLeftDate = SecondTrainLeftDate.AddDays(1); SecondTrainArriveDate = SecondTrainLeftDate.Add(Second.ElapsedTime); WaitElaspsedTime = SecondTrainLeftDate - FirstTrainArriveDate; TotalElapsedTime = SecondTrainArriveDate - FirstTrainLeftDate; } /// /// 前车出发时间 /// public DateTime FirstTrainLeftDate { get; private set; } /// /// 前车到达时间 /// public DateTime FirstTrainArriveDate { get; private set; } /// /// 后车出发时间 /// public DateTime SecondTrainLeftDate { get; private set; } /// /// 后车到达时间 /// public DateTime SecondTrainArriveDate { get; private set; } /// /// 前车历时 /// public TimeSpan FirstElapsedTime { get { return First.ElapsedTime; } } /// /// 后车历时 /// public TimeSpan SecondElapsedTime { get { return Second.ElapsedTime; } } /// /// 等待耗时 /// public TimeSpan WaitElaspsedTime { get; private set; } /// /// 总时间 /// public TimeSpan TotalElapsedTime { get; private set; } } }