nuri60 Resmi tatilleri internetten alıp PHP array ya da json içinde tutun. 2023-2024-2025 ekleseniz yeterli, bunun için bir yapıya ihtiyacınız yok, elle yapın.
use Carbon\CarbonPeriod;
// Eklenecek iş günü sayısı
$workDays = 10;
$start = today();
// Hafta sonları hariç...
$end = $start->copy()
->addWeekdays($workDays);
// Resmi tatiller
$holidays = [
// Yılbaşı
'2023-01-01',
// Ramazan Bayramı / Ulusal Egemenlik ve Çocuk Bayramı
'2023-04-21', '2023-04-22', '2023-04-23',
// İşçi Bayramı
'2023-05-01',
// Atatürk'ü Anma, Gençlik ve Spor Bayramı
'2023-05-19',
// Kurban Bayramı
'2023-08-28', '2023-08-29', '2023-08-30', '2023-09-01',
// Demokrasi Bayramı
'2023-07-15',
// Zafer Bayramı
'2023-08-30',
// Cumhuriyet Bayramı
'2023-10-29',
];
// Tüm iş günleri
$dates = [];
$period = CarbonPeriod::create($start, $end);
foreach($period as $date) {
// Resmi tatil ve hafta sonu değilse...
if(!in_array($date->toDateString(), $holidays) && $date->isWeekday()) {
$dates[] = $date;
}
}
// İlk iş günü
$startDate = $dates[0];
// Son iş günü
$endDate = end($dates);