CTCClassSchedule.Common.Helpers.getHourAndMinuteFromString C# (CSharp) Method

getHourAndMinuteFromString() private static method

Takes a string that represents a time (ie "6:45pm") and outputs the parsed hour and minute integers based on a 24 hour clock. If a time cannot be parsed, the output defaults to either 12am or 11:59pm depending on the time default parameter passed
private static getHourAndMinuteFromString ( string time, int &hour, int &minute, DefaultTimeResult defaultResultMode = DefaultTimeResult.StartTime ) : void
time string String representing a time value
hour int Reference to an integer storage for the parsed hour value
minute int Reference to an integer storage for the parsed minute value
defaultResultMode DefaultTimeResult Flag which determines the default result values if a time values were unable to be parsed
return void
        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));
                    }
                }
            }
        }