Este paquete te ofrece dos métodos simples para determinar los datos relevantes sobre la validación de días festivos en Colombia.
Con el método isHoliday
y pasando una fecha en el formato indicado, puedes determinar si la fecha es o no festiva en el calendario colombiano.
use Rmunate\Calendar\Colombia;
$isHoliday = Colombia::isHoliday('2024-01-01');
// true
$isHoliday = Colombia::isHoliday('2024-03-01');
// false
Usando el método getDescriptionIfHoliday
y pasando una fecha en el formato indicado, puedes obtener el motivo por el cual un día es festivo, siempre y cuando lo sea. Si no es festivo, se retornará un valor nulo.
use Rmunate\Calendar\Colombia;
$description = Colombia::getDescriptionIfHoliday('2024-01-01');
// 'Año nuevo'
$description = Colombia::getDescriptionIfHoliday('2024-03-01');
// null
Si deseas obtener todos los días festivos disponibles en el paquete, tu mejor opción es el método all()
. Esto retornará una colección de Laravel (\Illuminate\Support\Collection
) con toda la data lista para que apliques los filtros o tratamientos que necesites.
use Rmunate\Calendar\Colombia;
$all_holidays = Colombia::all();
Es posible que necesites realizar consultas específicas. Con este paquete puedes aplicar cualquier condición que te sea conveniente a los valores disponibles.
Columnas de la tabla:
Con esto en mente, puedes usar cualquier consulta con QueryBuilder.
use Rmunate\Calendar\Colombia;
$data = Colombia::where('day', 1)->where('month', 1)->get();
$data = Colombia::where('year', 2024)->where('month', 7)->get();
$data = Colombia::where('full_date', '2024-01-01')->first();
$data = Colombia::where('day_of_year', '>=', 180)->where('year', 2024)->get();
$data = Colombia::where('day_name', '!=', 'Sunday')->where('year', 2024)->get();
$data = Colombia::whereNot('day_name', 'Sunday')->where('year', 2024)->get();
$data = Colombia::whereIn('year', [2024, 2025])->whereIn('month', [1, 2, 3, 4, 5, 6])->get();
$data = Colombia::whereIn('holiday_reason', ['Jueves Santo', 'Viernes Santo'])->where('year', 2024)->get();
$data = Colombia::whereNotIn('holiday_reason', ['Jueves Santo', 'Viernes Santo'])->where('year', 2024)->get();
$data = Colombia::whereBetween('full_date', ['2024-01-01', '2024-03-01'])->get();
$data = Colombia::whereNotBetween('full_date', ['2024-01-01', '2024-03-01'])->get();
$data = Colombia::whereDate('full_date', '2024-01-01')->get();
$data = Colombia::whereMonth('full_date', '01')->get();
$data = Colombia::whereDay('full_date', '01')->get();
$data = Colombia::whereYear('full_date', 2024)->get();
En resumen, tienes tantas combinaciones como necesites. Además, el método Colombia::query()
también está disponible en el paquete y retorna una instancia válida de \Illuminate\Database\Query\Builder
, lo que te permite usar métodos diferentes de Query Builder que no estén listados en los ejemplos anteriores.
use Rmunate\Calendar\Colombia;
$data = Colombia::query()->where(function (Builder $query) {
$query->where('month', 3)->orWhere('month', 7);
});
Con estos métodos, puedes manejar y consultar los días festivos de Colombia de manera eficiente y flexible. ¡Aprovecha todas las posibilidades que este paquete te ofrece!