nepali-calendar-js

1.0.4 • Public • Published

Nepali Calendar JavaScript

A few javascript functions for converting Vikram Samvat / Nepali and Gregorian calendar systems to each other.

About

Vikram Samvat (Hindi: विक्रम सम्वत्, Nepali: विक्रम सम्वत्) (abbreviated as V.S. (or VS) or B.S. (or BS)) is the historical Hindu calendar of India and Nepal. It uses lunar months and solar sidereal year (see: Vedic time keeping). It is used as the official calendar in Nepal. Read more on Wikipedia.

Calendar conversion is based on the JSON Data exposed as "NepaliCalendarData"

Limitations

Calendar range from 2000 BS to 2090 BS

Future Enhancement

  1. Add more tests
  2. Adding support for more years
  3. Removing the json file and automating calendar conversions using some algorithm. Currently exploring : www.cc.kyoto-su.ac.jp/~yanom/sanskrit/pancanga/ for this purpose.

Request to other developers

Please send your pull requests in so that this library can become better and more useful.

Install

Node.js

Use npm to install:

$ npm install --save nepali-calendar-js

Then import it:

var nepali = require('nepali-calendar-js')

API

toNepali(gy, gm, gd)

Converts a Gregorian date to Nepali.

nepali.toNepali(1943,4, 14) // { ny: 2000, nm: 1, nd: 1 }

toNepali(date)

Converts a JavaScript Date object to Nepali.

nepali.toNepali(new Date(1995, 3, 11)) // { ny: 2051, nm: 11, nd: 27 }

toGregorian(ny, nm, nd)

Converts a Nepali date to Gregorian.

nepali.toGregorian(2010, 1, 19) // { gy: 1953, gm: 5, gd: 1 }

isValidNepaliDate(ny, nm, nd)

Checks whether a Nepali date is valid or not.

nepali.isValidNepaliDate(2000, 1, 32) // false
nepali.isValidNepaliDate(2050, 12, 19) // true

isLeapNepaliYear(ny)

Is this a leap year or not?

nepali.isLeapNepaliYear(2008) // false
nepali.isLeapNepaliYear(2019) // true

nepaliMonthLength(ny, nm)

Number of days in a given month in a Nepali year.

nepali.nepaliMonthLength(2000, 12) // 31
nepali.nepaliMonthLength(2090, 12) // 30

j2d(ny, nm, nd)

Converts a date of the Nepali calendar to the Julian Day number.

nepali.j2d(2010, 1, 19) // 2434499

d2j(ndn)

Converts the Julian Day number to a date in the Nepali calendar.

nepali.d2j(2434499) // { ny: 2010, nm: 1, nd: 19 }

g2d(gy, gm, gd)

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.

nepali.g2d(2016, 4, 11) // 2457490

d2g(ndn)

Calculates Gregorian and Julian calendar dates from the Julian Day number (ndn) for the period since ndn=-34839655 (i.e. the year -100100 of both calendars) to some millions years ahead of the present.

nepali.d2g(2457490) // { gy: 2016, gm: 4, gd: 11 }

Acknowledgement

This project was built from the great work done by @behrang who is behind jalaali-js project.

License

MIT

Package Sidebar

Install

npm i nepali-calendar-js

Weekly Downloads

32

Version

1.0.4

License

MIT

Unpacked Size

28.7 kB

Total Files

8

Last publish

Collaborators

  • sheetalgiri