npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

fechas

v0.2.2

Published

Escrita en typescript (y en spanglish)

Downloads

13

Readme

fechas

Una simple (muy simple) librería para el manejo de fechas.

Escrita en typescript (y en spanglish)

npm version Build Status Coverage Status


Para instalar:

npm i fechas

Uso

getFormatoFecha

getFormatoFecha (fecha: string): CodigoFormatoFecha;

Obtiene el formato de una fecha dada según los formatos definidos.

Los formatos validos estan definidos en el enum CodigoFormatoFecha y pueden ser estos:


/** dd/mm/yyyy */
FMT_ESPANOL = 'ESPANOL',

/** dd-mm-yyyy */
FMT_ITALIANO = 'ITALIANO',

/** ddmmyyyy */
FMT_PLANO = 'PLANO', 

/** yyyy/mm/dd */
FMT_INVERSO = 'INVERSO',

/** yyyymmdd */
FMT_INVERSOPLANO = 'INVERSOPLANO'

Ej:

import { getFormatoFecha } from "fechas";

getFormatoFecha('03-02-2020'); // ITALIANO

getFormatoFecha('2020/03/21'); // INVERSO

getFormatoFecha('2020.03.21'); // Error: Formato de fecha invalida

validarFecha

validarFecha (fecha: string): CodigoFormatoFecha;

Valida la consistencia de una fecha dada

Ej:

import { validarFecha } from "fechas";

validarFecha('36/05/2021'); // Error: Formato de dia invalido
validarFecha('29/02/2021'); // Error: Formato de dia invalido  (año no bisiesto)
validarFecha('29/13/2021'); // Error: Formato de mes invalido
validarFecha('16/06/9021'); // Error: Formato de año invalido
validarFecha('30/08/2021'); // Correcto

setFormatoFecha

setFormatoFecha( fecha: string, tipoFormato: CodigoFormatoFecha ) : string;

Asigna alguno de los formatos validos a una fecha dada.

Ej:

import { setFormatoFecha } from "fechas";

setFormatoFecha('02/02/2020', CodigoFormatoFecha.FMT_INVERSO); // '2020/02/02'

getUltimoDiaMes

getUltimoDiaMes( fecha: string ): string;

Devuelve el final de mes para cada mes dado en alguno de los formatos validos. Considera años bisiestos.

Ej:

import { getUltimoDiaMes } from "fechas";

getUltimoDiaMes('03/02/2020');  // 29/02/2020

getUltimoDiaMes('16/03/2020');  // 31/03/2020

isBisiesto

isBisiesto(anio:number): boolean;

Indica si el año dado es bisiesto o no.

Ej:

import { isBisiesto } from "fechas";

isBisiesto(2020);  //true 

isBisiesto(2021);  //false 

getDiaHabilSiguiente

getDiaHabilSiguiente(fecha: string, listaFeriados: FormatoFeriados[]); string

Obtiene la próxima fecha hábil dados una fecha y el listado de feriados de su país

Ej:

import { getDiaHabilSiguiente } from "fechas";

export interface FormatoFeriados {
    dia: string;
    mes: string;
    anio?: string
}

const feriados: FormatoFeriados[] = [
    {dia : '01', mes : '01'},
    {dia : '01', mes : '05'},
    {dia : '21', mes : '05'},
    {dia : '10', mes : '04', anio : '2020'}
]

getDiaHabilSiguiente('28/02/2020',feriados); // '02/03/2020'

El uso de la interfaz es opcional pero si esta empleando typescript se recomienda usar tipado de datos.

addDias

addDias (fecha: string, nDias: number): string;

Obtiene una nueva fecha al sumar o restar días.

Ej:

import { addDias } from "fechas";

addDias('01/02/2020', 1);   // '02/02/2020'

addDias('01/02/2020', 30);  // '02/03/2020'

addDiasHabiles

addDiasHabiles( fecha: string, cantidadDiazHabiles: number, listaFeriados: FormatoFeriados[] ): string;

Dados una fecha válida y un listado de feriados obtiene una nueva fecha hábil, al sumar o restar días hábiles.

Ej:

import { addDiasHabiles } from "fechas";

export interface FormatoFeriados {
    dia: string;
    mes: string;
    anio?: string
}

const feriados: FormatoFeriados[] = [
    {dia : '01', mes : '01'},
    {dia : '25', mes : '12'},
    {dia : '25', mes : '12', anio : '2019'}
    {dia : '10', mes : '04', anio : '2020'}
]

addDiasHabiles('24/12/2019', 5, feriados);   // '02/01/2020'

addMeses

addMeses(fecha: string, nMeses: number): string;

Suma N meses a una fecha sin importar el formato que este tenga, devolviendo una nueva fecha con el resultado de la suma y en el formato que ha sido enviada.

Ej:

import { addMeses } from "fechas";

addMeses('01/01/2020', 6); // '01/07/2020'

addMeses('01/10/2020', 3); // '01/01/2021'

restarFechas

restarFechas ( fecha1: string, fecha2: string ): number;

Obtiene la diferencia en días de dos fechas validas con el mismo formato

Ej:

import { restarFechas } from "fechas";

restarFechas('2019/09/14','2019/09/12'); // 2

restarFechas('14/09/2019','10/09/2019'); // 4

isHabil

isHabil ( fecha: string, listaFeriados: FormatoFeriados[] ): boolean;

Valida que una fecha sea hábil o no dados la fecha y el listado de feriados (de un país) . Valida feriados considerando dd-mm / dd-mm-yyyy y fines de semana.

Ej:

export interface FormatoFeriados {
    dia: string;
    mes: string;
    anio?: string
}

const feriados: FormatoFeriados[] = [
    {dia : '01', mes : '01'},
    {dia : '25', mes : '12'},
    {dia : '10', mes : '04', anio : '2020'}
]

isHabil('20/03/2020', feriados);   // true

isHabil('10/04/2020', feriados);   // false

FIN.