private static void Main(string[] args) { var parser = new OptionParser <Options>(); if (!parser.TryParse(args, out var options)) { return; } var dateFormatter = new DefaultDateTimeFormatter(); var timeSpanFormatter = new DefaultTimeSpanFormatter(); try { var resolver = GetStrategy(options.Strategy); var uptime = new Uptime(resolver); dateFormatter.Format = options.DateTimeFormat; dateFormatter.UniversalTime = options.UseUtc; timeSpanFormatter.CustomFormat = options.TimeSpanFormat; timeSpanFormatter.Compact = options.Compact; if (options.ShowBootTimeOnly) { dateFormatter.WriteLine(uptime.LastBoot, Console.Out); return; } if (options.ShowOnTimeOnly) { timeSpanFormatter.WriteLine(uptime.UptimeSpan, Console.Out); return; } Console.Write("Boot Time: "); dateFormatter.WriteLine(uptime.LastBoot, Console.Out); Console.Write("Current Time: "); dateFormatter.WriteLine(uptime.Now, Console.Out); Console.Write("Up Time: "); timeSpanFormatter.WriteLine(uptime.UptimeSpan, Console.Out); } catch (Exception e) { Console.Error.WriteLine(e.Message); parser.WriteUsage(); } }
private static void Main(string[] args) { var parser = new OptionParser <Options>(); if (!parser.TryParse(args, out var options)) { return; } try { var provider = new CultureInfo(options.CultureTwoLetterCode); var formatter = new DefaultDateTimeFormatter(formatProvider: provider); if (options.ShowExamples) { new ExampleWriter(formatter).WriteExamples(); return; } if (options.Extra.Count > 1) { throw new InvalidOperationException($"unexpected count of arguments: {options.Extra.ToSeparatedString()}"); } if (options.Extra.Count != 0) { formatter.Format = options.Extra[0]; } formatter.UniversalTime = options.UseUtc; formatter.WriteLine(Console.Out); } catch (Exception e) { Console.Error.WriteLine(e.Message); parser.WriteUsage(); } }