The Bikram Sambat calendar
Bikram Sambat (BS, बिक्रम सम्बत्) is the official calendar of Nepal. It is a solar calendar about 56 years and 8 months ahead of the Gregorian one: BS 2081 began on 13 April 2024. A year has 12 months, from Baishakh to Chaitra, and the new year falls in mid-April.
Months
Section titled “Months”| # | English | Nepali |
|---|---|---|
| 1 | Baishakh | बैशाख |
| 2 | Jestha | जेठ |
| 3 | Ashad | असार |
| 4 | Shrawan | साउन |
| 5 | Bhadra | भदौ |
| 6 | Ashoj | असोज |
| 7 | Kartik | कार्तिक |
| 8 | Mangsir | मंसिर |
| 9 | Poush | पुष |
| 10 | Magh | माघ |
| 11 | Falgun | फागुन |
| 12 | Chaitra | चैत |
Months are numbered from 1 in every port, including TypeScript, where JavaScript’s own Date
counts from 0.
Month lengths come from data
Section titled “Month lengths come from data”A BS month has 29 to 32 days, and the lengths change from year to year. No formula gives them; they
are published in the official calendar. Every port reads them from one table in the hub’s data/,
imported from C# NepDate, and never computes them.
Lengths beyond the officially published years are projections carried over from NepDate. When a new calendar is published and a projected year changes, the hub updates the table and every port takes it in a patch release (Calendar data).
The supported range
Section titled “The supported range”BS 1901-01-01 to 2199-12-30, which is AD 1844-04-11 to 2143-04-15. A date outside that range is an error in every port, never a guess.
The patro data (tithi, holidays, events) covers less: BS 2077 to 2084 (Core and patro).
What “today” means
Section titled “What “today” means”A BS date is a calendar day, not an instant. Which day it is depends on where you are, and Nepal is at UTC+05:45. The ports that read the clock default to Nepal time, so the machine’s own time zone doesn’t change the answer:
- TypeScript:
NepaliDate.today(timeZone = "Asia/Kathmandu"). - C++:
today(utc_offset), with +05:45 by default. - Python:
NepaliDate.today(tz=None), withAsia/Kathmanduwhen no zone is given. On Windows it needs thetzdatapackage for the zone database.
Converting a timestamp to a BS date is always explicit about the zone: pass a calendar date, or say which zone the instant should be read in.
Fiscal year
Section titled “Fiscal year”Nepal’s fiscal year starts on Shrawan 1. The fiscal year that starts in BS 2080 is labelled
2080/81 and ends on the last day of Ashad 2081. Every port’s fiscal_year (or its idiomatic name)
gives the start, the end and that label.