Package org.apache.poi.ss.formula.atp
Class WorkdayCalculator
- java.lang.Object
-
- org.apache.poi.ss.formula.atp.WorkdayCalculator
-
public class WorkdayCalculator extends Object
A calculator for workdays, considering dates as excel representations.
-
-
Field Summary
Fields Modifier and Type Field Description static WorkdayCalculatorinstance
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intcalculateNonWeekendHolidays(double start, double end, double[] holidays)Calculates how many holidays in a list are workdays, considering an interval of dates.intcalculateWorkdays(double start, double end, double[] holidays)Calculate how many workdays are there between a start and an end date, as excel representations, considering a range of holidays.DatecalculateWorkdays(double start, int workdays, double[] holidays)Calculate the workday past x workdays from a starting date, considering a range of holidays.DatecalculateWorkdays(double start, int workdays, int weekendType, double[] holidays)Calculate the workday past x workdays from a starting date, considering a range of holidays.Set<Integer>getValidWeekendTypes()protected booleanisHoliday(double aDate, double[] holidays)protected booleanisInARange(double start, double end, double aDate)protected booleanisWeekend(double aDate)protected intpastDaysOfWeek(double start, double end, int dayOfWeek)Calculates how many days of week past between a start and an end date.
-
-
-
Field Detail
-
instance
public static final WorkdayCalculator instance
-
-
Method Detail
-
calculateWorkdays
public int calculateWorkdays(double start, double end, double[] holidays)Calculate how many workdays are there between a start and an end date, as excel representations, considering a range of holidays.- Parameters:
start- start date.end- end date.holidays- an array of holidays.- Returns:
- number of workdays between start and end dates, including both dates.
-
calculateWorkdays
public Date calculateWorkdays(double start, int workdays, double[] holidays)
Calculate the workday past x workdays from a starting date, considering a range of holidays. Uses Sat/Sun weekend.- Parameters:
start- start date.workdays- number of workdays to be past from starting date.holidays- an array of holidays.- Returns:
- date past x workdays.
-
calculateWorkdays
public Date calculateWorkdays(double start, int workdays, int weekendType, double[] holidays)
Calculate the workday past x workdays from a starting date, considering a range of holidays.- Parameters:
start- start date.workdays- number of workdays to be past from starting date.weekendType- weekend parameter (see https://support.microsoft.com/en-us/office/workday-intl-function-a378391c-9ba7-4678-8a39-39611a9bf81d)holidays- an array of holidays.- Returns:
- date past x workdays.
-
pastDaysOfWeek
protected int pastDaysOfWeek(double start, double end, int dayOfWeek)Calculates how many days of week past between a start and an end date.- Parameters:
start- start date.end- end date.dayOfWeek- a day of week as represented byCalendarconstants.- Returns:
- how many days of week past in this interval.
-
calculateNonWeekendHolidays
protected int calculateNonWeekendHolidays(double start, double end, double[] holidays)Calculates how many holidays in a list are workdays, considering an interval of dates.- Parameters:
start- start date.end- end date.holidays- an array of holidays.- Returns:
- number of holidays that occur in workdays, between start and end dates.
-
isWeekend
protected boolean isWeekend(double aDate)
- Parameters:
aDate- a given date.- Returns:
trueif date is weekend,falseotherwise.
-
isHoliday
protected boolean isHoliday(double aDate, double[] holidays)- Parameters:
aDate- a given date.holidays- an array of holidays.- Returns:
trueif date is a holiday,falseotherwise.
-
isInARange
protected boolean isInARange(double start, double end, double aDate)- Parameters:
start- start date.end- end date.aDate- a date to be analyzed.- Returns:
trueif aDate is between start and end dates,falseotherwise.
-
-