tibetan-date-calculator

1.2.1 • Public • Published

A Javascript library to calculate Tibetan calendrical dates according to the Phugpa tradition.

The calculations are basically implementation the formulas in Svante Janson, "Tibetan Calendar Mathematics". We are using year 806 as the epoch for all calculations. See the paper for details.

Installation

npm install tibetan-date-calculator

Usage

import { TibetanDate, TibetanMonth, TibetanYear }  from 'tibetan-date-calculator';

API

The API exposes 3 classes: TibetanDate, TibetanMonth, TibetanMonth

TibetanDate

tibDate = new TibetanDate(arg)

arg: undefined

This will return tibeatan date object for today.

arg: String

This will return tibetan date object for the wester date new Date(arg).

Note: using date string without time stamp (e.g. '2019-06-21') can create bugs when run in different timezones due to the way native Date object handles it. See Date documentation

arg: Object

This will return tibetan day according to object definition:

keys type default description
year number Tibetan year number (ex. 2135)
month number Tibetan month number (1 to 12)
isLeapMonth boolean false is this month a leap month (first of repeated months)
day number Tibetan day number (1 to 30)
isLeapDay boolean false is this day a leap day (first of repeated day)

Properties

These can be accessed directly tibDate.property

property type description
westernDate Date a JS Date object corresponding to this date
year number Tibetan year number (ex. 2135)
month number Tibetan month number (1 to 12)
date number Tibetan date number (1 to 30)
day number day of the week, same as calling westernDate.getDay()
yearObj TibetanYear
monthObj TibetanMonth
isDoubledDay boolean
isLeapDay boolean
isSkippedDay boolean is this date skipped in the Tibetan calendar
isPreviousSkipped boolean is the previous date skipped (e.g. date=3 is 2 skipped)
westernDateStr string YYYY-MM-DD

Methods

TibetanDate exposes a set of methods to mimic the native Date behaviour.

method returns description
getWesternDate() Date same as the property westernDate
getYear() number same as the property year
getMonth() number same as the property month
getDate() number same as the property date
getDay() number same as the property day
getMonthObj() TibetanMonth same as the property monthObj
getYearObj() TibeatnYear same as the property yearObj
toString() string returns 'year-month(-leap/-main)-date(-leap/-main)'

TibetanMonth

tibMonth = new TibetanMonth(arg)

arg: undefined

This will return tibeatan month object that includes today.

arg: String

This will return tibetan month object that includes the wester date new Date(arg).

arg: Object

This will return tibetan month according to object definition:

keys type default description
year number Tibetan year number (ex. 2135)
month number Tibetan month number (1 to 12)
isLeapMonth boolean false is this month a leap month (first of repeated months)

Properties

These can be accessed directly tibDate.property

property type description
year number Tibetan year number (ex. 2135)
month number Tibetan month number (1 to 12)
isLeapMonth boolean is this month a leap month (first of repeated months)
isDoubledMonth boolean is this month doubled (either leap or main)
startDateStr string western date string for the first date of the month
endDateStr string western date string for the last date of the month
yearObj TibetanYear TibetanYear object
days TibetanDate[] list of days in the month, skipped days are not included. Need to call getDays() on the instance at least once to calculate it
toString() string returns 'year-month(-leap/-main)'

Methods

method returns description
getDays() TibetanDate[] generates an array of TibetanDays within this month, excluding skipped days. Once called, the days property will be populated too.

TibetanYear

tibYear = new TibetanYear(arg, isWestern = false)

arg: undefined

This will return tibeatan year object that includes today.

arg: Number

This will return tibetan year passed, unless isWestern is set to true. In that case the arg will be interpreted as a western year number.

arg: Object

This will return tibetan year according to rabjung year definition:

keys type description
rabjungCycle number The rabjung cycle number
rabjungYear number The year within the cycle (1 - 60)

Properties

These can be accessed directly tibDate.property

property type description
rabjungCycle number
rabjungYear number
tibYearNum number
westernYear number
animal string
element string
gender string
months TibetanMonth[] need to call getMonth() on the instance at least once to calculate it

Methods

method returns description
getMonths() TibetanMonth[] generates an array of TibetanMonth within this year. Once called, the months property will be populated too.
toRabjungString() string returns 'The X. year of the Y. rabjung cycle'
toString() string returns the Tibetan year number as string

Examples

Dependencies (0)

    Dev Dependencies (16)

    Package Sidebar

    Install

    npm i tibetan-date-calculator

    Weekly Downloads

    13

    Version

    1.2.1

    License

    MIT

    Unpacked Size

    250 kB

    Total Files

    107

    Last publish

    Collaborators

    • eszthoff