* Changes to WEEKNUM and YEARFRAC
The optional second parameter for WEEKNUM can take any of 10 values
(1, 2, 11-17, and 21), but currently only 1 and 2 are supported.
This change adds support for the other 8 possibilities.
YEARFRAC in Excel does not require that end date be before start date,
but PhpSpreadsheet was returning an error in that situation.
YEARFRAC third parameter (method) of 1 was not correctly implemented.
I was able to find a description of the algorithm, and documented
that location in the code, and implemented according to that spec.
PHPExcel had a (failing) test to assert the result of
YEARFRAC("1960-12-19", "2008-06-28", 1). This test had been dropped
from PhpSpreadsheet, and is now restored; several new tests have
been added, and verified against Excel.
* Add YEARFRAC Tests
Scrutinizer reported a very mysterious failure with no details.
project.metric_change("scrutinizer.test_coverage", < 0),
without even a link to explain what it is reporting.
It is possible that it was a complaint about code coverage.
If so, I have added some tests which will, I hope, eliminate the problem.
* Make Array Constant
Responding to review from Mark Baker.
* Merge with PR 1362 Bugfix 1161
Travis CI reported problem with Calculation.php (which is not part
  of this change).
That was changed in master a few days ago
(delete some unused code).
Perhaps the lack of that change is the problem here.
Merging it manually.
		
	
			
		
			
				
	
	
		
			564 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			564 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
return [
 | 
						|
    [
 | 
						|
        0.025,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-1-10',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.025,
 | 
						|
        '2007-1-10',
 | 
						|
        '2007-1-1',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.024657534246580001,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-1-10',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.025,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-1-10',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.024657534246580001,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-1-10',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.025,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-1-10',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.0,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-12-31',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.99726027397259998,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-12-31',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.01111111111111,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-12-31',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.99726027397259998,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-12-31',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.99722222222222001,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-12-31',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.5,
 | 
						|
        '2007-1-1',
 | 
						|
        '2008-7-1',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.49658002735978,
 | 
						|
        '2007-1-1',
 | 
						|
        '2008-7-1',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.5194444444444399,
 | 
						|
        '2007-1-1',
 | 
						|
        '2008-7-1',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.4986301369863,
 | 
						|
        '2007-1-1',
 | 
						|
        '2008-7-1',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.5,
 | 
						|
        '2007-1-1',
 | 
						|
        '2008-7-1',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.083333333333329998,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-1-31',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.082191780821919996,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-1-31',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.083333333333329998,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-1-31',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.082191780821919996,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-1-31',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.080555555555560002,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-1-31',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.083333333333329998,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-2-1',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.084931506849319993,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-2-1',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.08611111111111,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-2-1',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.084931506849319993,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-2-1',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.083333333333329998,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-2-1',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.15833333333333,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-2-28',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.15890410958904,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-2-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.16111111111111001,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-2-28',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.15890410958904,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-2-28',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.15833333333333,
 | 
						|
        '2007-1-1',
 | 
						|
        '2007-2-28',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.0027777777777800001,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-2-1',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.0027397260273999999,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-2-1',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.0027777777777800001,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-2-1',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.0027397260273999999,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-2-1',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.0027777777777800001,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-2-1',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.08611111111111,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-3-1',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.07945205479452,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-3-1',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.080555555555560002,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-3-1',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.07945205479452,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-3-1',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.08611111111111,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-3-1',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.16666666666666999,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-3-31',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.16164383561644,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-3-31',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.16388888888889,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-3-31',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.16164383561644,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-3-31',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.16666666666666999,
 | 
						|
        '2007-1-31',
 | 
						|
        '2007-3-31',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.66666666666666996,
 | 
						|
        '2008-1-1',
 | 
						|
        '2008-9-1',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.66666666666666996,
 | 
						|
        '2008-1-1',
 | 
						|
        '2008-9-1',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.67777777777778003,
 | 
						|
        '2008-1-1',
 | 
						|
        '2008-9-1',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.66849315068492998,
 | 
						|
        '2008-1-1',
 | 
						|
        '2008-9-1',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.66666666666666996,
 | 
						|
        '2008-1-1',
 | 
						|
        '2008-9-1',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.1666666666666701,
 | 
						|
        '2007-2-1',
 | 
						|
        '2008-4-1',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.16279069767442,
 | 
						|
        '2007-2-1',
 | 
						|
        '2008-4-1',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.18055555555556,
 | 
						|
        '2007-2-1',
 | 
						|
        '2008-4-1',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.16438356164384,
 | 
						|
        '2007-2-1',
 | 
						|
        '2008-4-1',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.1666666666666701,
 | 
						|
        '2007-2-1',
 | 
						|
        '2008-4-1',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        47.524999999999999,
 | 
						|
        '1960-12-19',
 | 
						|
        '2008-6-28',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        47.52162252765670,
 | 
						|
        '1960-12-19',
 | 
						|
        '2008-6-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        48.216666666666697,
 | 
						|
        '1960-12-19',
 | 
						|
        '2008-6-28',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        47.556164383561601,
 | 
						|
        '1960-12-19',
 | 
						|
        '2008-6-28',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        47.524999999999999,
 | 
						|
        '1960-12-19',
 | 
						|
        '2008-6-28',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        25.558333333333302,
 | 
						|
        '1982-12-7',
 | 
						|
        '2008-6-28',
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        25.5571892111134,
 | 
						|
        '1982-12-7',
 | 
						|
        '2008-6-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        25.9305555555556,
 | 
						|
        '1982-12-7',
 | 
						|
        '2008-6-28',
 | 
						|
        2,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        25.575342465753401,
 | 
						|
        '1982-12-7',
 | 
						|
        '2008-6-28',
 | 
						|
        3,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        25.558333333333302,
 | 
						|
        '1982-12-7',
 | 
						|
        '2008-6-28',
 | 
						|
        4,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.163934426,
 | 
						|
        '1960-01-01',
 | 
						|
        '1960-03-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.161643836,
 | 
						|
        '1961-01-01',
 | 
						|
        '1961-03-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.161643836,
 | 
						|
        '1963-03-01',
 | 
						|
        '1963-01-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.086183311,
 | 
						|
        '1960-01-01',
 | 
						|
        '1961-02-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.084931507,
 | 
						|
        '1961-01-01',
 | 
						|
        '1962-02-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.083447332,
 | 
						|
        '1963-01-01',
 | 
						|
        '1964-02-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.162790698,
 | 
						|
        '1963-01-01',
 | 
						|
        '1964-03-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.841530055,
 | 
						|
        '2020-02-28',
 | 
						|
        '2021-01-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.764383562,
 | 
						|
        '2020-03-28',
 | 
						|
        '2021-01-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.841530055,
 | 
						|
        '2023-04-28',
 | 
						|
        '2024-03-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.838797814,
 | 
						|
        '2023-04-28',
 | 
						|
        '2024-02-29',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.838356164,
 | 
						|
        '2023-04-28',
 | 
						|
        '2024-02-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.753424658,
 | 
						|
        '2023-04-28',
 | 
						|
        '2024-01-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.753424658,
 | 
						|
        '2022-04-28',
 | 
						|
        '2023-01-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.0,
 | 
						|
        '2020-01-01',
 | 
						|
        '2021-01-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.99726776,
 | 
						|
        '2020-02-28',
 | 
						|
        '2021-02-27',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.764383562,
 | 
						|
        '2020-03-28',
 | 
						|
        '2021-01-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.841530055,
 | 
						|
        '2023-04-28',
 | 
						|
        '2024-03-01',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.838797814,
 | 
						|
        '2023-04-28',
 | 
						|
        '2024-02-29',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.838356164,
 | 
						|
        '2023-04-28',
 | 
						|
        '2024-02-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.753424658,
 | 
						|
        '2023-04-28',
 | 
						|
        '2024-01-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.753424658,
 | 
						|
        '2022-04-28',
 | 
						|
        '2023-01-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.082191781,
 | 
						|
        '2022-04-28',
 | 
						|
        '2023-05-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1.002739726,
 | 
						|
        '2022-04-27',
 | 
						|
        '2023-04-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.084699454,
 | 
						|
        '2024-04-27',
 | 
						|
        '2024-05-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        0.084931507,
 | 
						|
        '2023-04-27',
 | 
						|
        '2023-05-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        2.085766423,
 | 
						|
        '2023-04-27',
 | 
						|
        '2025-05-28',
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
 | 
						|
];
 |