示例#1
0
        public static void RunSingle(string codename)
        {
            int          width      = 80;
            IDay         day        = _registry[codename];
            ConsoleColor savedColor = Console.ForegroundColor;

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("+" + "".PadRight(width - 2, '-') + "+");
            Console.Write("|");

            Console.ForegroundColor = ConsoleColor.Blue;
            Console.Write(day.Codename.PadLeft(width / 2 - 1 + day.Codename.Length / 2, ' ').PadRight(width - 2, ' '));

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("|");
            Console.Write("|");

            Console.ForegroundColor = ConsoleColor.DarkBlue;
            Console.Write(day.Name.PadLeft(width / 2 - 1 + day.Name.Length / 2, ' ').PadRight(width - 2, ' '));

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("|");
            Console.WriteLine("+" + "".PadRight(width - 2, '-') + "+");

            Stopwatch performance = new Stopwatch();

            performance.Start();
            day.Init();
            performance.Stop();
            string p0 = performance.Elapsed.ToString();

            performance.Reset();
            performance.Start();
            string part1 = day.Run(Part.Part1);

            performance.Stop();
            string p1 = performance.Elapsed.ToString();

            Console.ForegroundColor = ConsoleColor.Gray;
            Console.Write("Part 1: ");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine(part1);

            performance.Reset();
            performance.Start();
            string part2 = day.Run(Part.Part2);

            performance.Stop();
            string p2 = performance.Elapsed.ToString();

            Console.ForegroundColor = ConsoleColor.Gray;
            Console.Write("Part 2: ");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine(part2);

            Console.ForegroundColor = ConsoleColor.DarkGray;
            Console.Write("Time taken for init   = ");
            WriteElapsedTime(p0);
            Console.WriteLine("");
            Console.Write("Time taken for part 1 = ");
            WriteElapsedTime(p1);
            Console.WriteLine("");
            Console.Write("Time taken for part 2 = ");
            WriteElapsedTime(p2);
            Console.WriteLine("");
            Console.WriteLine("");

            Console.ForegroundColor = savedColor;
        }