nfTlWNl rn Ѻq$³*%yNk9S8jnM/=ƙ`_9Ogn&aIYuim ^UA`=Qݬ1cPqv>WIq,'<o:uIAF?\of w!l٬B5CT* ւXՌAW o&=eGV WR /*!8Pд!٣T*\IGC~xC1KLF{rf%3PR$>+CbW=2BKZ+Z'^gJP!Tp /#1yK"6N,h$1cIj 4;Gri;B#|l0LԬvW꙼G:9ZDa^,Z!j'V"ptHVO}~ז& s0T=uucxK)߾'=.`խ 7@ /.YUHշϏ1EGWլZxb̺Z;bn8$y^ϫ:GQ+#^/踕JG2k6/Ѡ ĢQ$3 ĢQ$3b.YNBy?qu&罽gq?I¢aC9 c оҗmhJM3\ʾLt_M< O<<3kzsVټĩ ĢQ$3 ĢQ$3j8^!}tC}hG:\VI}`HMpR[TYlxy2/&3 I]C63 ĢQ$3Dx:@y4>P ]~6àJ1Dq%(X%FݳDuNj<}5y}ػ ޛ3I\8~# ĢQ$3>+7@2'F~w'ʱȀw'?Ti!سd~|pJofmaQN L&3 I]C63IY~[I~_a ]΋EuS!CZ 4F2@=/翥.?zf2Ȱ=kly]S-sÐ u=[1Vj)({oayԈvV}WfE+燙2O'₹֘IFFكwOc-5fm%,Dl5EAxOhDԋbo3_6xE\ng`9\937-:gƔ)aukbc7HXsWۼl #qV L XpЬHް9`"wn=KURp FAb(n.DL_U<*oQps5b9& gwɩtDwe3c$)lʓ^82ֺ . 4x03jg:~K cOUÈ쉗ړ #pbxWF[Mu Yt2G>EG:J!8񥝉$Ǖ'!Ť!|F*'ҁ;4s$%Yceh\QvMvF9y9Bv0x}|U~/K˚6pEDpG;}0|΂^[> .+Pl A^J9?%T$]GBEw#3]\_֝hTlx iʼnhQfo38OFѱ*UE!筑\'w1pVZAf *m|_\f sDRhaˑ#t6y #S ߽,H8j%3œ+qԴjP+rVXUу#𖓽e1ոZjGI?-FkkCv2'DiF{d>e/z9Na;|Y63}z@fGss aԗu♁? ̳1Bv Byð@krX|&7·$jYW*8@'`P@h +r{5.6SKt֓[Œ# /ߑUEk V$EG%,|%Kq[n䤢Me:)/7۰cL^FV=006nRSbf[jtQ?JPX1y`?|ӗ}<,'LPi ]}kY^6a6T_;p"Ŭ\%$j|☬4 RH(W+{ N۵)56q [qR 犃k"UJ7t"M { $startDay = self::getStartDay($startDay, $startMonth, $startYear, $methodUS); $endDay = self::getEndDay($endDay, $endMonth, $endYear, $startDay, $methodUS); return $endDay + $endMonth * 30 + $endYear * 360 - $startDay - $startMonth * 30 - $startYear * 360; } private static function getStartDay(int $startDay, int $startMonth, int $startYear, bool $methodUS): int { if ($startDay == 31) { --$startDay; } elseif ($methodUS && ($startMonth == 2 && ($startDay == 29 || ($startDay == 28 && !Helpers::isLeapYear($startYear))))) { $startDay = 30; } return $startDay; } private static function getEndDay(int $endDay, int &$endMonth, int &$endYear, int $startDay, bool $methodUS): int { if ($endDay == 31) { if ($methodUS && $startDay != 30) { $endDay = 1; if ($endMonth == 12) { ++$endYear; $endMonth = 1; } else { ++$endMonth; } } else { $endDay = 30; } } return $endDay; } }