Clase Calendario Colombia Calculo de Festivos, Manejo de Fechas, Migraciones Laravel

Overview

Calendario Colombia | Calendar Colombia | Laravel (^5)

Control del Calendario de Colombia desde llamado de métodos de Clase. PHP (^7.4).

N|Solid

Control fácil del calendario de Colombia, control de festivos, fechas y manejo de días. Es una versión destinada netamente al control de las fechas de Colombia, esta clase al igual que la clase Carbon, se hereda de metodos y clases originales de PHP. Esta es una versión totalmente libre y se busca que en comunidad se mejore y se brinde mejores métodos y opciones para los programadores que deciden usarla.

Características

  • Manipular fechas y/o rangos de fechas con las características específicas del calendario de Colombia.
  • Validar datos de fechas puntuales como festivos, domingos, nombres, datos exactos, etc.
  • Conocer los días laborales de acuerdo al estándar de nuestro país.
  • Generar colecciones con los días festivos de un mes y año especifico.
  • Generar Migraciones y Seeders en laravel con tan solo invocar la clase.
  • Llamado estático en cualquier lugar del sistema.
  • Concatenación de métodos para fácil uso.
  • Trabaja siempre sobre la hora y fecha de Colombia sin importar la configuración del servidor.
  • Código libre y totalmente modificable.

Instalación

Descargue el contenido del repositorio a su equipo. Cree un directorio en la carpeta App de laravel con el nombre Services Dentro de esta carpeta pegue el archivo Colombia.php

App\Services

Esta carpeta se carga por defecto dentro del Framework, por lo cual podremos llamar la clase en cualquier controlador con total libertad.

Llamado y uso de Clase

<?php
use App\Services\Colombia;

Métodos

Podrá invocar el método que requiera de la clase. Listado Actual de Métodos

METODOS PARA FESTIVOS

LLAMADO METODOS CLASE DESCRIPCIÓN METODO
Colombia::timezone() Setea la Zona de Tiempo De Bogota Colombia. Es posible si se desea enviar como parámetro la zona que se desea asignar al sistema.
Colombia::holidays() Este método retorna la clase completa, donde se puede visualisar los años con data disponible en la propiedad privada holidays.
Colombia::holidays()->all() Este método retorna la colección completa de días festivos.
Colombia::holidays()->year(2020)->get() Este método retorna la colección completa de días festivos del año ingresado en year y generando la colección con el metodo final ->get().
Colombia::holidays()->years([2020,2021])->get() Este método retorna la colección completa de los días festivos de los años ingresado en years y generando la colección con el metodo final ->get().
Colombia::holidays()->year(2020)->month(8)->get() Este método retorna la colección completa de días festivos del año ingresado en year y del mes ingresado en month generando la colección con el metodo final ->get().
Colombia::holidays()->years([2020,2021])->month([8,9])->get() Este método retorna la colección completa de días festivos de los años ingresados en years y de los meses ingresados en months generando la colección con el metodo final ->get().
Colombia::holidays()->between(['2022-08-01','2022-09-01'])->get() Retorna los días festivos entre las fechas establecidas.
Colombia::holidays()->between(['2022-08-01','2022-09-01'])->notInclude('Sabado','Domingo')->get() Retorna los días festivos entre las fechas establecidas, sin incluir los dias que esten en el metodo notInclude, los dias pueden ingresarse en español o ingles.
Colombia::holidays()->years([2022...]).....->notInclude('Sabado','Domingo')->get() El metodo notInclude tambien se puede usar con los filtros por años o meses.
Colombia::holidays()->between(['2022-08-01','2022-09-01'])->include('Sabado','Domingo')->get() Retorna los días festivos entre las fechas establecidas, incluyendo solo los dias que esten en el metodo include, los dias pueden ingresarse en español o ingles.
Colombia::holidays()->years([2022...]).....->include('Sabado','Domingo')->get() El metodo include tambien se puede usar con los filtros por años o meses.

METODOS PARA FECHAS

LLAMADO METODOS CLASE DESCRIPCIÓN METODO
Colombia::date('2022-03-01') Retorna la Clase con los valores de sus propiedades.
Colombia::date('2022-03-01')->isHoliday() Retorna verdadero o falseo dependiendo si es o no festivo.
Colombia::date('2022-03-01')->isMonday() Retorna verdadero o falseo dependiendo si es o no lunes.
Colombia::date('2022-03-01')->isTuesday() Retorna verdadero o falseo dependiendo si es o no martes.
Colombia::date('2022-03-01')->isWednesday() Retorna verdadero o falseo dependiendo si es o no miercoles.
Colombia::date('2022-03-01')->isThursday() Retorna verdadero o falseo dependiendo si es o no jueves.
Colombia::date('2022-03-01')->isFriday() Retorna verdadero o falseo dependiendo si es o no viernes.
Colombia::date('2022-03-01')->isSaturday() Retorna verdadero o falseo dependiendo si es o no sabado.
Colombia::date('2022-03-01')->isSunday() Retorna verdadero o falseo dependiendo si es o no domingo.
Colombia::date('2022-03-01')->getDayString() Retorna el numero del dia en string conservando el cero al inicio.
Colombia::date('2022-03-01')->getDayInt() Retorna el numero del dia en formato numero.
Colombia::date('2022-03-01')->getDayNumberISO() Retorna el numero del dia en formato ISO.
Colombia::date('2022-03-01')->getDayYear() Extrae el numero del año en formato entero
Colombia::date('2022-03-01')->getDayES() Retorna el nombre del dia en Español.
Colombia::date('2022-03-01')->getDayEN() Retorna el nombre del dia en Ingles.
Colombia::date('2022-03-01')->toArray() Retorna la fecha de hoy separo el dia el mes y el año.
Colombia::date('2022-03-01')->fixUp(10) Retorna un Arreglo con los dias agregados en el metodo hacia adelante.
Colombia::date('2022-03-01')->fixDown(10) Retorna un Arreglo con los dias agregados en el metodo hacia atrás.
Colombia::date('2022-03-01')->addDays(10) Suma los dias a la fecha establecida.
Colombia::date('2022-03-01')->reduceDays(10) Resta los dias a la fecha establecida.
Colombia::date('2022-03-01')->addMonths(10) Suma los meses a la fecha establecida.
Colombia::date('2022-03-01')->addYears(10) Suma los años a la fecha establecida.
Colombia::date('2022-03-01')->reduceYears(10) Resta los años a la fecha establecida.
Colombia::date('2022-03-01')->getWeekISO() Obtener el numero de la semana en el año en Formato ISO.
Colombia::date('2022-03-01')->getTimeZone() Permite comprobar si la fecha esta trabajando con la zona de tiempo de Colombia.
Colombia::date('2022-03-01')->getMonthES() Obtener el nombre del mes en Español.
Colombia::date('2022-03-01')->getMonthEN() Obtener el nombre del mes en Ingles.
Colombia::date('2022-03-01')->getMonthString() Obteber el mes en string con cero al inicio.
Colombia::date('2022-03-01')->getMonthInt() Obteber el mes en Entero.
Colombia::date('2022-03-01')->getYear() Obteber el número del año en Entero.

METODOS ADICIONALES

LLAMADO METODOS CLASE DESCRIPCIÓN METODO
Colombia::getDaysMonth(2021,12) Retorna los dias del mes correspondiente al mes y año.
Colombia::diff('2022-01-01','2022-08-01')->output() Retorna la diferencia entre dos fechas, en metodo final output, genera una colección con los datos descriminados, adicional, se puede pasar como parametro ->output(...). cualquiera de las siguientes opciones con diferente tipo de salida (interval_years, interval_months, interval_days, interval_hours, interval_minutes, interval_seconds, days)

METODOS MIGRACIONES LARAVEL

LLAMADO METODOS CLASE DESCRIPCIÓN METODO
Colombia::schema()->create(); Crea la tabla colombian_calendar, donde se alojará la informacion del calendario de Colombia.
Colombia::schema()->drop(); Elimina la tabla colombian_calendar, donde se alojará la informacion del calendario de Colombia.
Colombia::schema()->seeder(); Llena la tabla colombian_calendar, con todo el calendario de colombia entre las fechas disponibles en la clase ***Este Seeder puede tomar bastante tiempo, por lo cual es aconsejable esperar y no matar el proceso de migraciones con seeder hasta que termine. ***.

Código Migración Laravel

<?php

use App\Services\Colombia;
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

return new class extends Migration
{
    /*-----------------------------------*/
    public function up(){
        Colombia::schema()->create();
    }

    /*-----------------------------------*/
    public function down(){
        Colombia::schema()->drop();
    }
};

Codigo Seeder Laravel

<?php

namespace Database\Seeders;

use App\Services\Colombia;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class ColombianCalendarSeeder extends Seeder
{
    public function run(){
        Colombia::schema()->seeder();
    }
}

Desarrollador(es)

Open Source

(Se reciben recomendaciones y mejoras.)

You might also like...
Laravel Blog Package. Easiest way to add a blog to your Laravel website. A package which adds wordpress functionality to your website and is compatible with laravel 8.
Laravel Blog Package. Easiest way to add a blog to your Laravel website. A package which adds wordpress functionality to your website and is compatible with laravel 8.

Laravel Blog Have you worked with Wordpress? Developers call this package wordpress-like laravel blog. Contact us for any customization: [email protected]

Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project.
Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project.

Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project. Only add few database tables with prefixes, not affect your existing database tables. Support Laravel 7.x & Laravel 6.x & Laravel 5.x & MySql & PostgreSql - Amila Laravel CMS

Laravel Kickstart is a Laravel starter configuration that helps you build Laravel websites faster.

Laravel Kickstart What is Laravel Kickstart? Laravel Kickstart is a Laravel starter configuration that helps you build Laravel websites faster. It com

Laravel Blog Package. Easiest way to add a blog to your Laravel website. A package which adds wordpress functionality to your website and is compatible with laravel 8.
Laravel Blog Package. Easiest way to add a blog to your Laravel website. A package which adds wordpress functionality to your website and is compatible with laravel 8.

Laravel Blog Have you worked with Wordpress? Developers call this package wordpress-like laravel blog. Give our package a Star to support us ⭐ 😍 Inst

Laravel User Activity Log - a package for Laravel 8.x that provides easy to use features to log the activities of the users of your Laravel app
Laravel User Activity Log - a package for Laravel 8.x that provides easy to use features to log the activities of the users of your Laravel app

Laravel User Activity Log - a package for Laravel 8.x that provides easy to use features to log the activities of the users of your Laravel app

:octocat: Socialite is an OAuth2 Authentication tool. It is inspired by laravel/socialite, you can easily use it without Laravel.

Socialite Socialite is an OAuth2 Authentication tool. It is inspired by laravel/socialite, You can easily use it in any PHP project. 中文文档 This tool no

InfyOm Laravel Generator - API, Scaffold, Tests, CRUD Laravel Generator
InfyOm Laravel Generator - API, Scaffold, Tests, CRUD Laravel Generator

InfyOm Laravel Generator Generate Admin Panels CRUDs and APIs in Minutes with tons of other features and customizations with 3 different themes. Read

An OAuth 2.0 bridge for Laravel and Lumen [DEPRECATED FOR LARAVEL 5.3+]
An OAuth 2.0 bridge for Laravel and Lumen [DEPRECATED FOR LARAVEL 5.3+]

OAuth 2.0 Server for Laravel (deprecated for Laravel 5.3+) Note: This package is no longer maintaned for Laravel 5.3+ since Laravel now features the P

This package provides an integration with FFmpeg for Laravel. Laravel's Filesystem handles the storage of the files.

Laravel FFMpeg This package provides an integration with FFmpeg for Laravel 6.0 and higher. Laravel's Filesystem handles the storage of the files. Fea

A Laravel Fractal package for building API responses, giving you the power of Fractal with Laravel's elegancy.
A Laravel Fractal package for building API responses, giving you the power of Fractal with Laravel's elegancy.

Laravel Responder is a package for building API responses, integrating Fractal into Laravel and Lumen. It can transform your data using transformers,

LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like Advanced CRUD Generation, Module Manager, Backups and many more.
LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like Advanced CRUD Generation, Module Manager, Backups and many more.

LaraAdmin 1.0 LaraAdmin is a Open source CRM for quick-start Admin based applications with features like Advanced CRUD Generation, Schema Manager and

The Laravel Boilerplate Project - https://laravel-boilerplate.com

Laravel Boilerplate (Current: Laravel 8.*) (Demo) Demo Credentials Admin: [email protected] Password: secret User: [email protected] Password: secret Offici

A Laravel 5 package that switchs default Laravel scaffolding/boilerplate to AdminLTE template and Pratt Landing Page with Bootstrap 3.0

AdminLTE template Laravel package A Laravel package that switch default Laravel scaffolding / boilerplate to AdminLTE template with Bootstrap 3.0 and

A Laravel Admin Panel (Laravel Version : 6.0)
A Laravel Admin Panel (Laravel Version : 6.0)

Laravel Admin Panel (Current: Laravel 7.*) Introduction Laravel Admin Panel provides you with a massive head start on any size web application. It com

Laravel Vue SPA, Bulma themed. For demo login use `admin@laravel-enso.com` & `password` -
Laravel Vue SPA, Bulma themed. For demo login use `[email protected]` & `password` -

Laravel Enso Hit the ground running when building your new Laravel SPA project with boilerplate and extra functionality out of the box! click on the p

🦉 Administrative interface builder for Laravel (Laravel admin)
🦉 Administrative interface builder for Laravel (Laravel admin)

Laravel Admin Panel SleepingOwl SleepingOwl Admin is an administrative interface builder for Laravel. Completely free Support Laravel 5.5 - 5.8 (PHP

Laravel Segment is an opinionated, approach to integrating Segment into your Laravel application.

Laravel Segment Laravel Segment is an opinionated, approach to integrating Segment into your Laravel application. Installation You can install the pac

High scalable boilerplate for Laravel - Vue using laravel-mix.

Why use this ? This boilerplate make developer easier to make monolith Laravel project which integrated with Vue.js and vue-router as default front-en

Laravel Sanctum support for Laravel Lighthouse
Laravel Sanctum support for Laravel Lighthouse

Lighthouse Sanctum Add Laravel Sanctum support to Lighthouse Requirements Installation Usage Login Logout Register Email Verification Forgot Password

Owner
Raúl Mauricio Uñate Castro
Ingeniero de Sistemas
Raúl Mauricio Uñate Castro
Flexible Calendar for Laravel 4

Laravel 4 Calendar Flexible Calendar for Laravel 4, supports Month, Week and Day Views and multiple events per date. To change the view type dynamical

null 59 Dec 24, 2022
Laravel 9 & React Event Calendar

###Event Calendar ##Projeyi docker üzerinde ayağa kaldırma #Acount Service accountService klasörü içine girerek docker-compose up --build komutu ile a

Muhammed Mustafa Bulut 4 Apr 19, 2022
Proyecto Start-Basic sobre Login y crud de usuarios, mediante Api Rest, usando la plantilla AdminLte 3.1 y manejo de roles y permisos con spatie y autenticacion JWT

Proyecto Start-Basic sobre Login y crud de usuarios, mediante Api Rest, usando la plantilla AdminLte 3.1 y manejo de roles y permisos con spatie y autenticacion JWT

null 9 Jul 5, 2022
List of 77 languages for Laravel Framework 4, 5, 6, 7 and 8, Laravel Jetstream , Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel Spark.

Laravel Lang In this repository, you can find the lang files for the Laravel Framework 4/5/6/7/8, Laravel Jetstream , Laravel Fortify, Laravel Cashier

Laravel Lang 6.9k Jan 2, 2023
List of 77 languages for Laravel Framework 4, 5, 6, 7 and 8, Laravel Jetstream , Laravel Fortify, Laravel Cashier and Laravel Nova.

Laravel Lang In this repository, you can find the lang files for the Laravel Framework 4/5/6/7/8, Laravel Jetstream , Laravel Fortify, Laravel Cashier

Laravel Lang 6.9k Dec 29, 2022
A Laravel package to output a specific sql to your favourite debugging tool. The supported log output is Laravel Telescope, Laravel Log, Ray, Clockwork, Laravel Debugbar and your browser.

Laravel showsql A Laravel package to output a specific sql to your favourite debugging tool, your browser or your log file. Use case You often want to

Dieter Coopman 196 Dec 28, 2022
⚡ Laravel Charts — Build charts using laravel. The laravel adapter for Chartisan.

What is laravel charts? Charts is a Laravel library used to create Charts using Chartisan. Chartisan does already have a PHP adapter. However, this li

Erik C. Forés 31 Dec 18, 2022
A Laravel Starter Kit for Laravel. Built with Laravel 8.

Laravel Get Started Project Laravel Get Started Project is a basic crud app built with laravel 8. In this app a basic product crud created. Features i

Nazmul Hasan Robin 8 Nov 24, 2022
A Laravel 5 package for OAuth Social Login/Register implementation using Laravel socialite and (optionally) AdminLTE Laravel package

laravel-social A Laravel 5 package for OAuth Social Login/Register implementation using Laravel socialite and (optionally) AdminLTE Laravel package. I

Sergi Tur Badenas 42 Nov 29, 2022