blob: 8f97f8378db177ad348671fcd9c7491e46c8e78e [file] [log] [blame] [edit]
using System.Collections.Generic;
namespace AppsheetEpplus;
/// <summary>
/// Simple implementation of DateValue function, just using .NET built-in
/// function System.DateTime.TryParse, based on current culture
/// </summary>
public class DateValue : ExcelFunction {
public override CompileResult Execute(
IEnumerable<FunctionArgument> arguments,
ParsingContext context) {
ValidateArguments(arguments, 1);
var dateString = ArgToString(arguments, 0);
return Execute(dateString);
}
internal CompileResult Execute(string dateString) {
System.DateTime.TryParse(dateString, out var result);
return result != System.DateTime.MinValue
? CreateResult(result.ToOADate(), DataType.Date)
: CreateResult(ExcelErrorValue.Create(eErrorType.Value), DataType.ExcelError);
}
}