UNPKG

@types/jalaali-js

Version:
181 lines (164 loc) 5.62 kB
/** * Jalaali date parts */ export interface JalaaliDateObject { /** Jalaali year */ jy: number; /** Jalaali month */ jm: number; /** Jalaali day */ jd: number; } /** * Gregorian date parts */ export interface GregorianDateObject { /** Gregorian year */ gy: number; /** Gregorian month */ gm: number; /** Gregorian day */ gd: number; } /** * Object returned by jalCal function */ export interface JalCalResult { /** Number of years since the last leap year (0 to 4) */ leap: number; /** Gregorian year of the beginning of Jalaali year */ gy: number; /** The March day of Farvardin the 1st (1st day of jy) */ march: number; } /** * Saturday and Friday day of a week */ export interface JalaaliWeek { /** Saturday day **/ saturday: JalaaliDateObject; /** Friday day **/ friday: JalaaliDateObject; } /** * Converts a Gregorian date to Jalaali. * @param gy Gregorian Calendar year (years BC numbered 0, -1, -2, ...) * @param gm Gregorian Calendar month (1 to 12) * @param gd Gregorian Calendar day of the month (1 to 28/29/30/31) */ export function toJalaali(gy: number, gm: number, gd: number): JalaaliDateObject; /** * Converts a Gregorian Date object to Jalaali. * @param date Gregorian Date object */ export function toJalaali(date: Date): JalaaliDateObject; /** * Converts a Jalaali date to Gregorian. * @param jy Jalaali Calendar year (years BC numbered 0, -1, -2, ...) * @param jm Jalaali Calendar month (1 to 12) * @param jd Jalaali Calendar day of the month (1 to 28/29/30/31) */ export function toGregorian(jy: number, jm: number, jd: number): GregorianDateObject; /** * Checks whether a Jalaali date is valid or not. * @param jy Jalaali Calendar year (years BC numbered 0, -1, -2, ...) * @param jm Jalaali Calendar month (1 to 12) * @param jd Jalaali Calendar day of the month (1 to 28/29/30/31) */ export function isValidJalaaliDate(jy: number, jm: number, jd: number): boolean; /** * Check if this is a leap year. * @param jy Jalaali Calendar year (years BC numbered 0, -1, -2, ...) */ export function isLeapJalaaliYear(jy: number): boolean; /** * Number of days in a given month in a Jalaali year. * @param jy Jalaali Calendar year (years BC numbered 0, -1, -2, ...) * @param jm Jalaali Calendar month (1 to 12) */ export function jalaaliMonthLength(jy: number, jm: number): number; /** * This function determines if the Jalaali (Persian) year is * leap (366-day long) or is the common year (365 days), and * finds the day in March (Gregorian calendar) of the first * day of the Jalaali year (jy). * @param jy Jalaali calendar year (-61 to 3177) * @return * leap: number of years since the last leap year (0 to 4) * gy: Gregorian year of the beginning of Jalaali year * march: the March day of Farvardin the 1st (1st day of jy) * @see http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm * @see http://www.fourmilab.ch/documents/calendar/ */ export function jalCal(jy: number): JalCalResult; /** * Converts a date of the Jalaali calendar to the Julian Day number. * @param jy Jalaali year (1 to 3100) * @param jm Jalaali month (1 to 12) * @param jd Jalaali day (1 to 29/31) * @return Julian Day number */ export function j2d(jy: number, jm: number, jd: number): number; /** * Converts the Julian Day number to a date in the Jalaali calendar. * @param jdn Julian Day number * @return * jy: Jalaali Calendar year (1 to 3100) * jm: Jalaali Calendar month (1 to 12) * jd: Jalaali Calendar day (1 to 29/31) */ export function d2j(jdn: number): JalaaliDateObject; /** * Calculates the Julian Day number from Gregorian or Julian * calendar dates. This integer number corresponds to the noon of * the date (i.e. 12 hours of Universal Time). * The procedure was tested to be good since 1 March, -100100 (of both * calendars) up to a few million years into the future. * @param gy Gregorian Calendar year (years BC numbered 0, -1, -2, ...) * @param gm Gregorian Calendar month (1 to 12) * @param gd Gregorian Calendar day of the month (1 to 28/29/30/31) * @return Julian Day number */ export function g2d(gy: number, gm: number, gd: number): number; /** * Calculates Gregorian and Julian calendar dates from the Julian Day number * (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both * calendars) to some millions years ahead of the present. * @param jdn Julian Day number * @return * gy: Gregorian Calendar year (years BC numbered 0, -1, -2, ...) * gm: Gregorian Calendar month (1 to 12) * gd: Gregorian Calendar day of the month M (1 to 28/29/30/31) */ export function d2g(jdn: number): GregorianDateObject; /** * Convert Jalaali calendar date to javascript Date object by giving Jalaali * year, month, and day. * @param jy Jalaali year (1 to 3100) * @param jm Jalaali month (1 to 12) * @param jd Jalaali day (1 to 29/31) * @param [h] hours * @param [m] minutes * @param [s] seconds * @param [ms] milliseconds * @return javascript Date object */ export function jalaaliToDateObject( jy: number, jm: number, jd: number, h?: number, m?: number, s?: number, ms?: number, ): Date; /** * Return Saturday and Friday day of current week(week start in Saturday). * @param jy Jalaali year (1 to 3100) * @param jm Jalaali month (1 to 12) * @param jd Jalaali day (1 to 29/31) * @return * saturday: Saturday day of current week * friday: Friday day of current week */ export function jalaaliWeek(jy: number, jm: number, jd: number): JalaaliWeek;