php ile iki tarih arasında çalışma günü hesaplıyorum. Bunda bir sorun yok tatil günleri vs sayıdan düşülüyor ama takıldığım nokta, yarım günlük düşüşler, örneğin arefe günleri. Buraya gireceğim günleri yarım gun olarak nasıl düşüp hesaplatabilirim. Bu konuda yardımcı olabilecek var mı? Şuan kullandığım kodu aşağıya bırakıyorum.
function calismagunsay($from, $to) {
$calismagunler = [1, 2, 3, 4, 5, 6]; # date format = N (1 = Monday, ...)
$tatiller = ['*-01-01', '*-04-23', '*-05-01', '*-05-19', '*-07-15', '*-08-30', '*-10-29', '2021-05-13', '2021-05-14', '2021-05-15', '2021-07-20', '2021-07-21', '2021-07-22', '2021-07-23']; # variable and fixed holidays
$arefe = ['*-10-28'];
$from = new DateTime($from);
$to = new DateTime($to);
$to->modify('+1 day');
$interval = new DateInterval('P1D');
$periods = new DatePeriod($from, $interval, $to);
$days = 0;
foreach ($periods as $period) {
if (!in_array($period->format('N'), $calismagunler)) continue;
if (in_array($period->format('Y-m-d'), $tatiller)) continue;
if (in_array($period->format('*-m-d'), $tatiller)) continue;
$days++;
}
return $days;