public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context) { ValidateArguments(arguments, 1); var dateObj = arguments.ElementAt(0).Value; System.DateTime date = System.DateTime.MinValue; if (dateObj is double) { date = System.DateTime.FromOADate((double)dateObj); } if (dateObj is string) { date = System.DateTime.Parse(dateObj.ToString()); } return CreateResult(date.Year, DataType.Integer); }
public void YearShouldReturnCorrectYearWithStringParam() { var date = new DateTime(2012, 3, 12); var func = new Year(); var result = func.Execute(FunctionsHelper.CreateArgs("2012-03-12"), _parsingContext); Assert.AreEqual(2012, result.Result); }