@zener/nepali-date
Version:
Nepali Date is a lightweight utility designed to handle Nepali dates.
67 lines (66 loc) • 2.14 kB
TypeScript
import { findADfromBS, findBSfromAD } from '../utils/calendar';
import { ILang, formatADDate } from '../utils/commons';
type LangReturnType<T extends ILang> = T extends 'en' ? number : string;
type ADReturnType<T extends ILang> = T extends 'en' ? {
year: number;
month: number;
date: number;
toString: () => string;
} : {
year: string;
month: string;
date: string;
toString: () => string;
};
interface DateObject {
year: number;
month: number;
date: number;
day: number;
}
interface NepaliDateObject {
year: string;
month: string;
date: string;
day: string;
}
type IManipulateDate = 'day' | 'week' | 'month' | 'year' | 'd' | 'w' | 'm' | 'y';
declare class NepaliDate {
#private;
constructor();
constructor(date: string | Date | NepaliDate);
constructor(year: number, monthIndex: number, date: number);
format(format?: string, lang?: ILang): string;
toString(lang?: ILang): string;
toJson(lang?: 'en'): DateObject;
toJson(lang?: 'np'): NepaliDateObject;
toAD<T extends ILang = 'en'>(lang?: T): ADReturnType<T>;
toADasDate(): Date;
getFullYear<T extends ILang = 'en'>(lang?: T): LangReturnType<T>;
getMonth<T extends ILang = 'en'>(lang?: T): LangReturnType<T>;
getMonthName(lang?: ILang): string;
getDate<T extends ILang = 'en'>(lang?: T): LangReturnType<T>;
getDay<T extends ILang = 'en'>(lang?: T): LangReturnType<T>;
getDayName(lang?: ILang): string;
getDayNameFull(lang?: ILang): string;
subtract(value: number, type: IManipulateDate): NepaliDate;
add(value: number, type: IManipulateDate): NepaliDate;
setDate(date: number): void;
setMonth(month: number): void;
setFullYear(year: number): void;
static now(lang?: ILang): {
day: number;
toString: () => string;
year: number;
month: number;
date: number;
} | {
year: string;
month: string;
date: string;
day: string;
toString: () => string;
};
}
export { findADfromBS as toAD, findBSfromAD as toBS, formatADDate };
export default NepaliDate;