org.apache.poi.ss.formula.functions

## Class Days360

- java.lang.Object
- - org.apache.poi.ss.formula.functions.Days360

- All Implemented Interfaces:
    Function, Function2Arg, Function3Arg

      public class Days360
      extends java.lang.Object

  Calculates the number of days between two dates based on a 360-day year (twelve 30-day months), which is used in some accounting calculations. Use this function to help compute payments if your accounting system is based on twelve 30-day months.

  `DAYS360(start_date,end_date,[method])`

  - Start_date, end_date (required):
    The two dates between which you want to know the number of days.
    If start_date occurs after end_date, the DAYS360 function returns a negative number.
  - Method (optional):
    A logical value that specifies whether to use the U.S. or European method in the calculation
  - Method set to false or omitted:
    the DAYS360 function uses the U.S. (NASD) method. If the starting date is the 31st of a month, it becomes equal to the 30th of the same month. If the ending date is the 31st of a month and the starting date is earlier than the 30th of a month, the ending date becomes equal to the 1st of the next month, otherwise the ending date becomes equal to the 30th of the same month. The month February and leap years are handled in the following way:
    On a non-leap year the function `=DAYS360("2/28/93", "3/1/93", FALSE)` returns 1 day because the DAYS360 function ignores the extra days added to February.
    On a leap year the function `=DAYS360("2/29/96","3/1/96", FALSE)` returns 1 day for the same reason.
  - Method Set to true:
    When you set the method parameter to TRUE, the DAYS360 function uses the European method. Starting dates or ending dates that occur on the 31st of a month become equal to the 30th of the same month. The month February and leap years are handled in the following way:
    On a non-leap year the function `=DAYS360("2/28/93", "3/1/93", TRUE)` returns 3 days because the DAYS360 function is counting the extra days added to February to give February 30 days.
    On a leap year the function `=DAYS360("2/29/96", "3/1/96", TRUE)` returns 2 days for the same reason.
  See Also:
    DAYS360 Function Produces Different Values Depending on the Version of Excel

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Days360()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ValueEval` | `evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1)` see `Function.evaluate(ValueEval[], int, int)`
    `ValueEval` | `evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1, ValueEval arg2)` see `Function.evaluate(ValueEval[], int, int)`
    `ValueEval` | `evaluate(ValueEval[] args, int srcRowIndex, int srcColumnIndex)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Days360

          public Days360()

  - ### Method Detail

    - #### evaluate

          public ValueEval evaluate(int srcRowIndex,
                                    int srcColumnIndex,
                                    ValueEval arg0,
                                    ValueEval arg1)

      Description copied from interface: `Function2Arg`
      see `Function.evaluate(ValueEval[], int, int)`

    - #### evaluate

          public ValueEval evaluate(int srcRowIndex,
                                    int srcColumnIndex,
                                    ValueEval arg0,
                                    ValueEval arg1,
                                    ValueEval arg2)

      Description copied from interface: `Function3Arg`
      see `Function.evaluate(ValueEval[], int, int)`

    - #### evaluate

          public final ValueEval evaluate(ValueEval[] args,
                                          int srcRowIndex,
                                          int srcColumnIndex)

      Specified by:
        `evaluate` in interface `Function`
      Parameters:
        `args` - the evaluated function arguments. Empty values are represented with `BlankEval` or `MissingArgEval`, never `null`.
        `srcRowIndex` - row index of the cell containing the formula under evaluation
        `srcColumnIndex` - column index of the cell containing the formula under evaluation
      Returns:
        The evaluated result, possibly an `ErrorEval`, never `null`. Note - Excel uses the error code #NUM! instead of IEEE NaN, so when numeric functions evaluate to `Double.NaN` be sure to translate the result to `ErrorEval.NUM_ERROR`.

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.