How can extending classes like Carbon in PHP help simplify the process of calculating and managing public holidays and weekends in date-related functions?

Extending classes like Carbon in PHP can simplify the process of calculating and managing public holidays and weekends in date-related functions by allowing us to create custom methods that handle these specific cases. By extending the Carbon class, we can add functionality to check if a given date falls on a public holiday or a weekend, making it easier to incorporate these considerations into our date calculations.

use Carbon\Carbon;

class CustomDate extends Carbon {
    
    public function isPublicHoliday() {
        // Add logic to check if the current date is a public holiday
        // Return true if it is, false otherwise
    }

    public function isWeekend() {
        // Add logic to check if the current date falls on a weekend
        // Return true if it does, false otherwise
    }
}

// Example usage
$date = new CustomDate('2022-01-01');
if($date->isPublicHoliday() || $date->isWeekend()) {
    echo "This date is a public holiday or falls on a weekend.";
} else {
    echo "This date is neither a public holiday nor a weekend.";
}