private static int Rank(AdventPuzzles puzzles, AdventDate date) { var sw = Stopwatch.StartNew(); var total = 0; var durations = puzzles.Matching(date) .Where(puzzle => !puzzle.Date.Matches(new AdventDate(default, 25, 2)))
public static int Main(string[] args) { if (args?.Length < 1) { return(Usage()); } var puzzles = AdventPuzzles.Load(); if (!AdventDate.TryParse(args[0], out var date)) { return(InvalidDay(args[0])); } if (date.SpecifiesYearDay() && !puzzles.Contains(date)) { return(Generate(date)); } else if (args.Length == 2 && args[1] == "-rank") { return(Rank(puzzles, date)); } else { var matching = puzzles.Matching(date); if (matching.Any()) { foreach (var puzzle in matching) { puzzle.Run(); } return(Success); } else { return(NoMethod(date)); } } }