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);
        }
Example #3
0
        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);
        }