<?php
function c
( $y , $s ) { for ( $d = $y * 365.25 ;++ $i < count ( $l = array_map ( date_create , $s ) ) ; ) $d += $l [ 0 ] -> diff ( $l [ $i ] ) -> days ; ( $l [ $i - 1 ] > $r = $l [ 0 ] -> add ( new DateInterval
( P
. ceil ( $d / $i ) . D
) ) ) ?c
( $y , array_slice ( $s , 0 ,- 1 ) ) : print $r -> format ( 'Y/m/d' ) ; }
c( 10 , [ '2000/01/01' ] ) ; echo "\n " ;
c( 100 , [ '1975/03/05' , '1978/07/23' , '2008/11/12' , '2012/12/20' ] ) ; echo "\n " ;
c( 100 , [ '1975/03/06' , '1978/07/23' , '2008/11/12' , '2012/12/20' ] ) ; echo "\n " ;
c( 100 , [ '1975/03/09' , '1978/07/23' , '2008/11/12' , '2012/12/20' ] ) ; echo "\n " ;
c( 100 , [ '1975/03/10' , '1978/07/23' , '2008/11/12' , '2012/12/20' ] ) ; echo "\n " ;
c( 3 , [ '1990/08/01' , '1995/07/02' ] ) ; echo "\n " ;
c( 50 , [ '1975/03/05' , '1978/07/23' , '2008/11/12' , '2012/12/20' ] ) ; echo "\n " ;
PD9waHAKZXJyb3JfcmVwb3J0aW5nKEVfRVJST1IpOwoKZnVuY3Rpb24gYygkeSwkcyl7Zm9yKCRkPSR5KjM2NS4yNTsrKyRpPGNvdW50KCRsPWFycmF5X21hcChkYXRlX2NyZWF0ZSwkcykpOykkZCs9JGxbMF0tPmRpZmYoJGxbJGldKS0+ZGF5czsoJGxbJGktMV0+JHI9JGxbMF0tPmFkZChuZXcgRGF0ZUludGVydmFsKFAuY2VpbCgkZC8kaSkuRCkpKT9jKCR5LGFycmF5X3NsaWNlKCRzLDAsLTEpKTpwcmludCRyLT5mb3JtYXQoJ1kvbS9kJyk7fQoKYygxMCwgIFsnMjAwMC8wMS8wMSddKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiXG4iOwpjKDEwMCwgWycxOTc1LzAzLzA1JywgJzE5NzgvMDcvMjMnLCAnMjAwOC8xMS8xMicsICcyMDEyLzEyLzIwJ10pOyBlY2hvICJcbiI7CmMoMTAwLCBbJzE5NzUvMDMvMDYnLCAnMTk3OC8wNy8yMycsICcyMDA4LzExLzEyJywgJzIwMTIvMTIvMjAnXSk7IGVjaG8gIlxuIjsKYygxMDAsIFsnMTk3NS8wMy8wOScsICcxOTc4LzA3LzIzJywgJzIwMDgvMTEvMTInLCAnMjAxMi8xMi8yMCddKTsgZWNobyAiXG4iOwpjKDEwMCwgWycxOTc1LzAzLzEwJywgJzE5NzgvMDcvMjMnLCAnMjAwOC8xMS8xMicsICcyMDEyLzEyLzIwJ10pOyBlY2hvICJcbiI7CmMoMywgICBbJzE5OTAvMDgvMDEnLCAnMTk5NS8wNy8wMiddKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIlxuIjsKYyg1MCwgIFsnMTk3NS8wMy8wNScsICcxOTc4LzA3LzIzJywgJzIwMDgvMTEvMTInLCAnMjAxMi8xMi8yMCddKTsgZWNobyAiXG4iOw==