@koalarx/utils
Version:
Biblioteca com validadores, conversores e abstrações de algumas problemáticas
71 lines (70 loc) • 3.24 kB
TypeScript
import { KlDateDayEnum } from './enums/KlDateDayEnum';
import { KlDateCountry } from './types/KlDateCountry';
import { KlDateDateType } from './types/KlDateDateType';
import { KlDateTimeZone } from './types/KlDateTimeZone';
interface KlDateOptions {
skipHolidays?: {
country: KlDateCountry;
};
skipDays?: KlDateDayEnum[];
}
export declare class KlDate extends Date {
/**
* Formata a data atual em uma string com base no padrão fornecido.
* @param mask Máscara de formatação (ex.: 'dd/MM/yyyy HH:mm:ss').
* @returns Uma string representando a data formatada.
*/
format(mask?: string): string;
/**
* Altera o fuso horário (GMT) da data atual.
* @param timeZone String representando o GMT (ex.: '+3', '-2').
* @returns Uma nova instância de `KlDate` com o GMT ajustado.
*/
changeTimeZone(timeZone: KlDateTimeZone): KlDate;
/**
* Converte a data atual para o formato UTC.
* @returns Uma nova instância de `KlDate` no formato UTC.
*/
toUTC(): KlDate;
/**
* Adiciona uma quantidade de tempo à data atual.
* @param qty Quantidade de tempo a ser adicionada.
* @param type Tipo de unidade de tempo (ex.: 'seconds', 'days', 'months').
* @param options Opções para ignorar feriados ou dias específicos.
* @returns A própria instância de `KlDate` com a data ajustada.
*/
add(qty: number, type: KlDateDateType, options?: KlDateOptions): this;
/**
* Subtrai uma quantidade de tempo da data atual.
* @param qty Quantidade de tempo a ser subtraída.
* @param type Tipo de unidade de tempo (ex.: 'seconds', 'days', 'months').
* @param options Opções para ignorar feriados ou dias específicos.
* @returns A própria instância de `KlDate` com a data ajustada.
*/
sub(qty: number, type: KlDateDateType, options?: KlDateOptions): any;
/**
* Calcula a diferença entre a data atual e outra data fornecida.
* @param date A data para calcular a diferença.
* @param type Tipo de unidade de tempo para o cálculo (ex.: 'seconds', 'days').
* @returns A diferença entre as datas na unidade especificada.
*/
diff(date: Date, type: KlDateDateType): number;
/**
* Verifica se a data atual é um feriado no país especificado.
* @param country Código do país (ex.: 'BR' para Brasil).
* @returns `true` se a data atual for um feriado no país especificado, caso contrário `false`.
*
* Esta função utiliza a biblioteca `date-holidays` para determinar se a data atual
* corresponde a um feriado oficial no país informado. A data é ajustada para garantir
* que a verificação seja precisa, mesmo em diferentes fusos horários.
*/
isHoliday(country?: KlDateCountry): boolean;
}
/**
* Função utilitária para verificar se uma data específica é um feriado em um país.
* @param date Instância de `KlDate` ou `Date` para verificar.
* @param country Código do país (ex.: 'BR' para Brasil).
* @returns `true` se a data for um feriado no país especificado, caso contrário `false`.
*/
export declare function isHoliday(date: KlDate | Date, country?: KlDateCountry): boolean;
export {};