README.md
Shahanshahi (Imperial) JavaScript
A lightweight JavaScript library for converting Shahanshahi (Imperial, Persian-based) and Gregorian calendar systems to each other.
Install
Node.js
npm install github:amirebog/imperial-js
Then import it:
const imperial = require('shahanshahi-calendar');
API
toImperial(gy, gm, gd)
Converts a Gregorian date to Shahanshahi.
imperial.toImperial(2026, 2, 18)
// { iy: 2585, im: 2, id: 18 }
toImperial(date)
Converts a JavaScript Date object to Shahanshahi.
imperial.toImperial(new Date(2026, 1, 18))
// { iy: 2585, im: 2, id: 18 }
toGregorian(iy, im, id)
Converts a Shahanshahi date to Gregorian.
imperial.toGregorian(2585, 2, 18)
// { gy: 2026, gm: 2, gd: 18 }
isValidImperialDate(iy, im, id)
Checks whether a Shahanshahi date is valid.
imperial.isValidImperialDate(2585, 12, 30)
// true
isLeapImperialYear(iy)
Checks if a Shahanshahi year is a leap year.
imperial.isLeapImperialYear(2585)
// true or false
imperialMonthLength(iy, im)
Returns number of days in a given month of a Shahanshahi year.
imperial.imperialMonthLength(2585, 12)
// 30
imperialToDateObject(iy, im, id)
Converts a Shahanshahi date to a JavaScript Date object.
imperial.imperialToDateObject(2585, 2, 18)
// new Date(2026, 1, 18)
imperialWeek(iy, im, id)
Returns Saturday and Friday of the current week (week starts on Saturday).
imperial.imperialWeek(2585, 2, 18)
// {
// saturday: { iy: 2585, im: 2, id: 14 },
// friday: { iy: 2585, im: 2, id: 20 }
// }
License
MIT