using System;
using System.Globalization;
using System.Linq;
using System.Collections.Generic;
public class Test
{
public static TimeSpan? TryParseTimeSpan(string input)
{
TimeSpan? ts = (TimeSpan?)null;
if (!String.IsNullOrEmpty(input))
{
input = input.Trim();
int length = input.Length % 2 == 0 ? input.Length : input.Length + 1;
int count = length / 2;
if(count > 3) return null;
input = input.PadLeft(count * 2, '0');
string[] validFormats = new[] { "HHmmss", "mmss", "ss" };
DateTime dt;
if (DateTime.TryParseExact(input, validFormats, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
ts = dt.TimeOfDay;
}
return ts;
}
public static void Main()
{
List<string> inputs = new List<string> { "78", "10545", "5" };
IEnumerable<TimeSpan> timeSpans = inputs
.Select(i => TryParseTimeSpan(i))
.Where(ts => ts.HasValue)
.Select(ts => ts.Value);
foreach (TimeSpan ts in timeSpans)
Console.WriteLine(ts.ToString());
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwoKcHVibGljIGNsYXNzIFRlc3QKewogICBwdWJsaWMgc3RhdGljIFRpbWVTcGFuPyBUcnlQYXJzZVRpbWVTcGFuKHN0cmluZyBpbnB1dCkKICAgIHsKICAgICAgICBUaW1lU3Bhbj8gdHMgPSAoVGltZVNwYW4/KW51bGw7CiAgICAgICAgaWYgKCFTdHJpbmcuSXNOdWxsT3JFbXB0eShpbnB1dCkpCiAgICAgICAgewogICAgICAgICAgICBpbnB1dCA9IGlucHV0LlRyaW0oKTsKICAgICAgICAgICAgaW50IGxlbmd0aCA9IGlucHV0Lkxlbmd0aCAlIDIgPT0gMCA/IGlucHV0Lkxlbmd0aCA6IGlucHV0Lkxlbmd0aCArIDE7CiAgICAgICAgICAgIGludCBjb3VudCA9IGxlbmd0aCAvIDI7CiAgICAKICAgICAgICAgICAgaWYoY291bnQgPiAzKSByZXR1cm4gbnVsbDsKICAgIAogICAgICAgICAgICBpbnB1dCA9IGlucHV0LlBhZExlZnQoY291bnQgKiAyLCAnMCcpOwogICAgCiAgICAgICAgICAgIHN0cmluZ1tdIHZhbGlkRm9ybWF0cyA9IG5ld1tdIHsgIkhIbW1zcyIsICJtbXNzIiwgInNzIiB9OwogICAgICAgICAgICBEYXRlVGltZSBkdDsKICAgICAgICAgICAgaWYgKERhdGVUaW1lLlRyeVBhcnNlRXhhY3QoaW5wdXQsIHZhbGlkRm9ybWF0cywgQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSwgRGF0ZVRpbWVTdHlsZXMuTm9uZSwgb3V0IGR0KSkKICAgICAgICAgICAgICAgIHRzID0gZHQuVGltZU9mRGF5OyAKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRzOwogICAgfSAKCglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CiAgICAgICAgIExpc3Q8c3RyaW5nPiBpbnB1dHMgPSBuZXcgTGlzdDxzdHJpbmc+IHsgIjc4IiwgIjEwNTQ1IiwgIjUiIH07CiAgICAgICAgICAgIElFbnVtZXJhYmxlPFRpbWVTcGFuPiB0aW1lU3BhbnMgPSBpbnB1dHMKICAgICAgICAgICAgICAgIC5TZWxlY3QoaSA9PiBUcnlQYXJzZVRpbWVTcGFuKGkpKQogICAgICAgICAgICAgICAgLldoZXJlKHRzID0+IHRzLkhhc1ZhbHVlKQogICAgICAgICAgICAgICAgLlNlbGVjdCh0cyA9PiB0cy5WYWx1ZSk7CiAgICAgICAgICAgIGZvcmVhY2ggKFRpbWVTcGFuIHRzIGluIHRpbWVTcGFucykKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHRzLlRvU3RyaW5nKCkpOwoKCX0KfQ==