blob: 3ba7a10048ebc5738720c6a58a5707b4f55c4d6a [file] [log] [blame]
using System.Collections.Generic;
using System.Linq;
namespace AppsheetEpplus;
public class Networkdays : ExcelFunction {
public override CompileResult Execute(
IEnumerable<FunctionArgument> arguments,
ParsingContext context) {
var functionArguments = arguments as FunctionArgument[] ?? arguments.ToArray();
ValidateArguments(functionArguments, 2);
var startDate = System.DateTime.FromOADate(ArgToInt(functionArguments, 0));
var endDate = System.DateTime.FromOADate(ArgToInt(functionArguments, 1));
var calculator = new WorkdayCalculator();
var result = calculator.CalculateNumberOfWorkdays(startDate, endDate);
if (functionArguments.Length > 2) {
result = calculator.ReduceWorkdaysWithHolidays(result, functionArguments[2]);
}
return new(result.NumberOfWorkdays, DataType.Integer);
}
}