public StringBuilder translate_single_pairing(Pairing path, ref StringBuilder pathStr, ref SummarySingleDuty summary) { double start_time = 0, end_time = 0; int num_external_days = 0; //MealStatus mealStatus = MealStatus.no; foreach (Arc arc in path.ArcList) { switch (arc.ArcType) { case 2: pathStr.AppendFormat("{0}站{1}分出乘", arc.O_Point.StartStation, arc.D_Point.StartTime); start_time = arc.D_Point.StartTime; break; case 1: pathStr.AppendFormat("{0}[{1}]{2}", arc.O_Point.TrainCode, arc.O_Point.MealStatus, "→"); summary.totalConnect += arc.Cost; break; case 22: pathStr.AppendFormat("{0}[{1}]{2}", arc.O_Point.TrainCode, arc.O_Point.MealStatus, "→"); summary.totalConnect += arc.Cost; summary.externalRest += arc.Cost; num_external_days++; break; case 3: pathStr.AppendFormat("{0}[{1}] {2}站{3}分退乘", arc.O_Point.TrainCode, arc.O_Point.MealStatus, arc.D_Point.EndStation, arc.O_Point.EndTime); end_time = arc.O_Point.EndTime; break; default: break; } //if (arc.O_Point.MealStatus != MealStatus.no) { // pathStr.AppendFormat("[{0}]→", arc.O_Point.MealStatus); //} } summary.totalLength = end_time - start_time; summary.pureCrewTime = summary.totalLength - summary.totalConnect; summary.accumuwork = summary.totalLength - summary.externalRest;// +120 ; pathStr.AppendFormat(" ,总长度, {0},纯乘务时间 {1},总接续时间 {2},外驻时间 {3},总工作时间{4}", summary.totalLength, summary.pureCrewTime, summary.totalConnect, summary.externalRest, summary.accumuwork); pathStr.AppendLine(); return(pathStr); }
public StringBuilder translate_single_pairing(Pairing path, ref StringBuilder pathStr, ref SummarySingleDuty summary) { double start_time = 0, end_time = 0; int num_external_days = 0; foreach (Arc arc in path.Arcs) { switch (arc.ArcType) { case 2: pathStr.AppendFormat("{0}站{1}分出乘", arc.O_Point.StartStation, arc.D_Point.StartTime); start_time = arc.D_Point.StartTime; break; case 1: pathStr.AppendFormat("{0} {1}", arc.O_Point.TrainCode, "→"); summary.totalConnect += arc.Cost; break; case 22: pathStr.AppendFormat("{0} {1}", arc.O_Point.TrainCode, "→"); summary.totalConnect += arc.Cost; summary.externalRest += arc.Cost; num_external_days++; break; case 3: pathStr.AppendFormat("{0} {1}站{2}分退乘", arc.O_Point.TrainCode, arc.D_Point.EndStation, arc.O_Point.EndTime); end_time = arc.O_Point.EndTime; break; default: break; } } summary.totalLength = end_time - start_time; summary.pureCrewTime = summary.totalLength - summary.totalConnect; pathStr.AppendFormat(" 总长度 {0}\t纯乘务时间 {1}\t总接续时间 {2}\t外驻时间 {3}", summary.totalLength, summary.pureCrewTime, summary.totalConnect, summary.externalRest); pathStr.AppendLine(); return(pathStr); }
public StringBuilder translate_single_pairing(Pairing path, ref StringBuilder pathStr, ref SummarySingleDuty summary) { double start_time = 0, end_time = 0; int num_external_days = 0; string status = ""; pathStr.AppendFormat("{0}属于{1}号交路,其工作链是", path.Arcs.First().D_Point.Name, path.Arcs.First().D_Point.RoutingID); for (int i = 1; i < path.Arcs.Count - 1; i++) { Arc arc = path.Arcs[i]; status = arc.D_Point.TypeofWorkorRest == 1 ? "作" : "息"; pathStr.AppendFormat("({0}_{1}, {2})", arc.D_Point.Name, status, path.workVector[i - 1], "→"); summary.totalConnect += arc.Cost; } #region //MyRegion /* * foreach (Arc arc in path.Arcs) * { * switch (arc.ArcType)///弧的类型:1-接续弧,2-出乘弧,3-退乘弧, 20-虚拟起点弧,30-虚拟终点弧 * //弧的类型:1-接续弧, 2-虚拟起点弧,3-虚拟终点弧 * { * case 2: * pathStr.AppendFormat("{0}属于{1}号交路,其工作链是", arc.D_Point.Name, arc.D_Point.RoutingID); * break; * case 1: * status = arc.D_Point.TypeofWorkorRest == 1 ? "作" : "息"; * pathStr.AppendFormat("({0}_{1}, {2})", arc.D_Point.Name , status, path.workVector[], "→"); * summary.totalConnect += arc.Cost; * break; * * case 3: * break; #region * //case 2: * // pathStr.AppendFormat("{0}站{1}分出乘", arc.O_Point.StartStation, arc.D_Point.StartTime); * // start_time = arc.D_Point.StartTime; * // break; * //case 1: * // pathStr.AppendFormat("{0} {1}", arc.O_Point.TrainCode, "→"); * // summary.totalConnect += arc.Cost; * // break; * //case 22: * // pathStr.AppendFormat("{0} {1}", arc.O_Point.TrainCode, "→"); * // summary.totalConnect += arc.Cost; * // summary.externalRest += arc.Cost; * // num_external_days++; * // break; * //case 3: * // pathStr.AppendFormat("{0} {1}站{2}分退乘", arc.O_Point.TrainCode, arc.D_Point.EndStation, arc.O_Point.EndTime); * // end_time = arc.O_Point.EndTime; * // break; #endregion * default: * break; * } * }*/ #endregion //summary.totalLength = end_time - start_time; //summary.pureCrewTime = summary.totalLength - summary.totalConnect; //pathStr.AppendFormat(" 总长度 {0}\t纯乘务时间 {1}\t总接续时间 {2}\t外驻时间 {3}", // summary.totalLength, summary.pureCrewTime, summary.totalConnect, summary.externalRest); pathStr.AppendLine(); return(pathStr); }