Çok teşekkür ederim,

şuan için çözdüm sayenizde




metehandemir adlı üyeden alıntı: mesajı görüntüle
Bu kullanımlar doğru değil ama sizin paylaştığınız koda bağlı kalırsak şu şekilde yapılabilir.
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;
        if (in_array($period->format('Y-m-d'), $arefe) OR in_array($period->format('*-m-d'), $arefe)) {
            $days = $days + '0.5';
            continue;
        }
        $days++;
    }
    
    return $days;
}