public static bool TryParseTime([CanBeNull] string value, out int totalSeconds) {
if (value == null) {
totalSeconds = 0;
return false;
}
var splitted = value.Split(':');
if (splitted.Length == 1) {
int hours;
if (TryParseInt(splitted[0], out hours)) {
totalSeconds = hours * 60 * 60;
return true;
}
} else if (splitted.Length == 2) {
int hours, minutes;
if (TryParseInt(splitted[0], out hours) && TryParseInt(splitted[1], out minutes)) {
totalSeconds = hours * 60 * 60 + minutes * 60;
return true;
}
} else if (splitted.Length == 3) {
int hours, minutes, seconds;
if (TryParseInt(splitted[0], out hours) && TryParseInt(splitted[1], out minutes) && TryParseInt(splitted[2], out seconds)) {
totalSeconds = hours * 60 * 60 + minutes * 60 + seconds;
return true;
}
}
totalSeconds = 0;
return false;
}