/// <summary> /// Equals method overloaded to compare two values of the same data type. /// </summary> /// <param name="obj">The object to compare with.</param> /// <returns>true, if both values are equals, otherwise false.</returns> public override bool Equals(object obj) { DaytimeDuration compareTo = obj as DaytimeDuration; if (compareTo == null) { return(base.Equals(obj)); } return(_days == compareTo._days && _hours == compareTo._hours && _minutes == compareTo._minutes && _seconds == compareTo._seconds && _negative == compareTo._negative); }
/// <summary> /// Evaluates the function. /// </summary> /// <param name="context">The evaluation context instance.</param> /// <param name="args">The function arguments.</param> /// <returns>The result value of the function evaluation.</returns> public override EvaluationValue Evaluate(EvaluationContext context, params inf.IFunctionParameter[] args) { if (context == null) { throw new ArgumentNullException("context"); } if (args == null) { throw new ArgumentNullException("args"); } DateTime baseDate = GetDateTimeArgument(args, 0); typ.DaytimeDuration dayTimeDuration = GetDaytimeDurationArgument(args, 1); baseDate = baseDate.AddDays(dayTimeDuration.Days * -1); baseDate = baseDate.AddHours(dayTimeDuration.Hours * -1); baseDate = baseDate.AddMinutes(dayTimeDuration.Minutes * -1); baseDate = baseDate.AddSeconds(dayTimeDuration.Seconds * -1); return(new EvaluationValue(baseDate, DataTypeDescriptor.DateTime)); }