function countWeekDays($d1, $d2) {
$ndays = 1 + ($d2->diff($d1)->days);
$nsaturdays = (int)(($ndays + (int)$d1->format('w')) / 7);
return $ndays - 2 * $nsaturdays
- ($d1->format('w') == 0 ? 1 : 0)
+ ($d2->format('w') == 6 ? 1 : 0);
}
echo countWeekDays(new DateTime('2025-01-01'), new DateTime('2025-01-07')) . "\n";
echo countWeekDays(new DateTime('2025-02-01'), new DateTime('2025-02-10')) . "\n";
echo countWeekDays(new DateTime('2024-01-01'), new DateTime('2024-12-31')) . "\n";
echo countWeekDays(new DateTime('2025-01-01'), new DateTime('2025-12-31')) . "\n";
/*
run:
5
6
262
261
*/