private static void getHourAndMinuteFromString(string time, out int hour, out int minute, DefaultTimeResult defaultResultMode = DefaultTimeResult.StartTime)
{
// In case the method is unable to convert a time, default to either a start/end time
switch (defaultResultMode)
{
case DefaultTimeResult.EndTime:
hour = 23;
minute = 59;
break;
default:
hour = 0;
minute = 0;
break;
}
// Determine integer values for time hours and minutes
if (!String.IsNullOrWhiteSpace(time))
{
string timeTrimmed = time.Trim();
bool period = (timeTrimmed.Length > 2 ? timeTrimmed.Substring(timeTrimmed.Length - 2) : timeTrimmed).Equals("PM", StringComparison.OrdinalIgnoreCase);
// Adjust the conversion to integers if the user leaves off a leading 0
// (possible by using tab instead of mouseoff on the time selector)
if (time.IndexOf(':') == 2)
{
hour = Convert.ToInt16(time.Substring(0, 2)) + (period ? 12 : 0);
if (time.IndexOf(':') != -1)
{
minute = Convert.ToInt16(time.Substring(3, 2));
}
}
else
{
hour = Convert.ToInt16(time.Substring(0, 1)) + (period ? 12 : 0);
if (time.IndexOf(':') != -1)
{
minute = Convert.ToInt16(time.Substring(2, 2));
}
}
}
}