private bool AddTokens(double value, ParsingValue parsingValue, ref DateTime result) { switch (parsingValue) { case ParsingValue.Hours: return(this.AddHours(value, ref result)); case ParsingValue.Minutes: return(this.AddMinutes(value, ref result)); case ParsingValue.Seconds: return(this.AddSeconds(value, ref result)); } return(false); }
private bool IsValidToken(double value, ParsingValue parsingValue) { switch (parsingValue) { case ParsingValue.Hours: return(value >= 0 && value <= 24); case ParsingValue.Minutes: return(value >= 0 && value < 60); case ParsingValue.Seconds: return(value >= 0 && value < 60); } return(false); }
private bool StartParsing(double value, ParsingValue parsingValue, ref DateTime result) { for (int i = 10; i < Math.Pow(10, 6); i *= 10) { int h = (int)(value / i); if (this.IsValidToken(h, parsingValue)) { this.AddTokens(h, parsingValue, ref result); double min = value % i; return(this.AddTokens(min, (parsingValue == ParsingValue.Hours ? ParsingValue.Minutes : ParsingValue.Seconds), ref result)); } } return(false); }