/// <summary>
        /// Parses the string.  Dumps results to console window
        /// </summary>
        /// <param name="s"></param>
        static void ParseRfc822(string s)
        {
            PFSRfc822DateTimeConverter converter = new PFSRfc822DateTimeConverter();


            Console.WriteLine(FixWidth("INPUT RFC822:") + s);

            // try and parse.
            if (converter.TryParse(s, out DateTime tmpDt))
            {
                Console.WriteLine(FixWidth("RESULT RFC822:") + converter.ResultRfc822);
                Console.WriteLine(FixWidth("RESULT TIMEZONE OFFSET:") + converter.UtcOffset.ToString("c"));
                Console.WriteLine(FixWidth("RESULT UTC DATETIME:") + converter.ResultUtc.ToString("yyyy-MM-dd HH:mm:ss zzz"));
                Console.WriteLine(FixWidth("RESULT LOCAL DATETIME:") + tmpDt.ToString("yyyy-MM-dd HH:mm:ss zzz"));
                Console.WriteLine(FixWidth("RESULT DST IN USE:") + (converter.TimeZoneUsesDaylightSavingsTime ? "YES" : "NO"));
                Console.WriteLine(FixWidth("RESULT MESSAGE:") + "VALID FORMAT");

                WriteDateParts(converter);
            }

            // error encountered, bail
            else
            {
                Console.WriteLine(FixWidth("RESULT MESSAGE:") + "INVALID FORMAT");

                WriteDateParts(converter);
            }
        }
 /// <summary>
 /// Common routine just to dump the dateparts array
 /// </summary>
 /// <param name="conv"></param>
 private static void WriteDateParts(PFSRfc822DateTimeConverter conv)
 {
     Console.WriteLine("");
     for (int i = 0; i < conv.DATEPART_KEYS.Count; i++)
     {
         string datePartValue = conv.GetDatePartValue(conv.DATEPART_KEYS[i]);
         Console.WriteLine(FixWidth("DATEPART " + conv.DATEPART_KEYS[i] + ":") + datePartValue);
     }
 }