public static Phrase ReduceDateTimeAdditionDateTime(IFuzzyState state, Dictionary<String, Token> parameters) { DateTimeTemporalPrimitiveToken dateTimeA = (DateTimeTemporalPrimitiveToken) parameters["dateTimeA"]; AdditionThirdOrderArithmeticOperatorToken addition = (AdditionThirdOrderArithmeticOperatorToken) parameters["addition"]; DateTimeTemporalPrimitiveToken dateTimeB = (DateTimeTemporalPrimitiveToken) parameters["dateTimeB"]; AndLogicalOperatorToken and = new AndLogicalOperatorToken() { Text = addition.Text, Similarity = addition.Similarity }; return DateTimeTemporalPrimitiveToken.ReduceDateTimeAndDateTime(state, new Dictionary<String, Token>() { {"dateTimeA", dateTimeA}, {"and", and}, {"dateTimeB", dateTimeB} }); }
public static Phrase ReduceDateTimeAtDateTime(IFuzzyState state, Dictionary<String, Token> parameters) { DateTimeTemporalPrimitiveToken dateTimeA = (DateTimeTemporalPrimitiveToken) parameters["dateTimeA"]; AtAdpositionsPrepositionsSyntaxToken at = (AtAdpositionsPrepositionsSyntaxToken) parameters["at"]; DateTimeTemporalPrimitiveToken dateTimeB = (DateTimeTemporalPrimitiveToken) parameters["dateTimeB"]; AndLogicalOperatorToken and = new AndLogicalOperatorToken() { Text = at.Text, Similarity = at.Similarity }; return DateTimeTemporalPrimitiveToken.ReduceDateTimeAndDateTime(state, new Dictionary<String, Token>() { {"dateTimeA", dateTimeA}, {"and", and}, {"dateTimeB", dateTimeB} }); }
public static Phrase ReduceDateTimeAtNumber(IFuzzyState state, Dictionary<String, Token> parameters) { DateTimeTemporalPrimitiveToken dateTimeA = (DateTimeTemporalPrimitiveToken) parameters["dateTimeA"]; AtAdpositionsPrepositionsSyntaxToken at = (AtAdpositionsPrepositionsSyntaxToken) parameters["at"]; FloatNumericPrimitiveToken number = (FloatNumericPrimitiveToken) parameters["number"]; int definitiveHour = (int) number.ToFloat().ConvertTo(typeof (int)); if (number.ToFloat() < 12) { // If PM if (DateTime.Now.Hour > 12) { definitiveHour += 12; } } HourVariableTemporalPrimitiveToken hour = new HourVariableTemporalPrimitiveToken() { Pattern = new FuzzyDateTimePattern() { Rule = TimeType.Definitive, Hour = definitiveHour, Minute = 0, Second = 0 }, Text = number.Text, Similarity = number.Similarity }; AndLogicalOperatorToken and = new AndLogicalOperatorToken() { Text = at.Text, Similarity = at.Similarity }; return DateTimeTemporalPrimitiveToken.ReduceDateTimeAndDateTime(state, new Dictionary<String, Token>() { {"dateTimeA", dateTimeA}, {"and", and}, {"hour", hour} }); }
public static Phrase ReduceDateTimePlusDateTime(IFuzzyState state, Dictionary<String, Token> parameters) { DateTimeTemporalPrimitiveToken dateTimeA = (DateTimeTemporalPrimitiveToken) parameters["dateTimeA"]; PlusTypographySyntaxToken plus = (PlusTypographySyntaxToken) parameters["plus"]; DateTimeTemporalPrimitiveToken dateTimeB = (DateTimeTemporalPrimitiveToken) parameters["dateTimeB"]; AndLogicalOperatorToken and = new AndLogicalOperatorToken() { Text = plus.Text, Similarity = plus.Similarity }; return DateTimeTemporalPrimitiveToken.ReduceDateTimeAndDateTime(state, new Dictionary<String, Token>() { {"dateTimeA", dateTimeA}, {"and", and}, {"dateTimeB", dateTimeB} }); }