Today in Nepal
कार्तिक८२०८३
Sunday, 25 October 2026 is Kartik 8, 2083.
Nepali dates in nanoseconds, the same in every language.
Bikram Sambat for Rust, Go, TypeScript, Python, Swift, Kotlin and C++, plus the C# original. Each port is faster than every other BS library we measured in its language, and all of them give the same day for any date from BS 1901 to 2199.
use nepdate::{Lang, LongDate, NepaliDate};
let date = NepaliDate::new(2081, 4, 15)?;
let ad = date.to_gregorian();
assert_eq!((ad.year(), ad.month(), ad.day()), (2024, 7, 30));
println!("{}", date.long(LongDate::default(), Lang::En)); // Shrawan 15, 2081d, err := nepdate.New(2081, nepdate.Shrawan, 15)
if err != nil {
log.Fatal(err)
}
y, m, day := d.Gregorian()
fmt.Println(y, int(m), day) // 2024 7 30
fmt.Println(d.Format("MMMM d, yyyy", nepdate.English)) // Shrawan 15, 2081import { NepaliDate } from "nepdate-core";
const date = NepaliDate.of(2081, 4, 15);
date.toGregorian(); // { year: 2024, month: 7, day: 30 }
date.long(); // "Shrawan 15, 2081"from nepdate import NepaliDate
date = NepaliDate(2081, 4, 15)
date.to_date() # datetime.date(2024, 7, 30)
date.long() # 'Shrawan 15, 2081'import NepDate
let date = try NepaliDate(year: 2081, month: 4, day: 15)
print(date.gregorian) // (year: 2024, month: 7, day: 30)
print(date.long()) // Shrawan 15, 2081val date = NepaliDate.of(2081, 4, 15)
println("${date.gregorianYear}-${date.gregorianMonth}-${date.gregorianDay}") // 2024-7-30
println(date.toLongString()) // Shrawan 15, 2081#include <nepdate/nepdate.hpp>
const nepdate::date d = nepdate::make_date(2081, 4, 15).value();
const auto ad = d.to_year_month_day(); // 2024-07-30
std::cout << nepdate::to_string(d); // 2081/04/15using NepDate;
var date = new NepaliDate(2081, 4, 15);
Console.WriteLine(date.EnglishDate.ToString("yyyy-MM-dd")); // 2024-07-30
Console.WriteLine(date.ToLongDateString()); // Shrawan 15, 2081BS 2081-04-15 is AD 2024-07-30in every port
Install
Every port ships two packages with one version, now 0.1.0-beta.1: the core for conversion, arithmetic, formatting and parsing, and the patro for tithi, public holidays and events. Take only the core and no almanac data ships with your app. C# NepDate is one package with its own versions.
- Rust docs
cargo add nepdate@=0.1.0-beta.1 - Go docs
go get github.com/sanamhub/nepdate-go@v0.1.0-beta.1 - TypeScript docs
npm install nepdate-core@beta - Python docs
pip install --pre nepdate-core - Swift docs
.package(url: "https://github.com/sanamhub/nepdate-swift", exact: "0.1.0-beta.1") - Kotlin docs
implementation("io.github.sanamhub:nepdate:0.1.0-beta.1") - C++ docs
FetchContent_Declare(nepdate GIT_REPOSITORY https://github.com/sanamhub/nepdate-cpp.git GIT_TAG v0.1.0-beta.1) - C# docs
dotnet add package NepDate --version 2.0.7
Faster than every other library we measured
BS to AD, time per call, against the fastest other Bikram Sambat library in each language. Each port timed 33 libraries in all on the same machine and the same 64 dates, and none of them agrees with the calendar data on all 64.
Every operation, and how it was measured- Rust21× fasterNepDate 2.9 ns
nepdate-cli61 ns - C++4.7× fasterNepDate 7.1 ns
nepdate-cli33 ns - Go28× fasterNepDate 6.2 ns
go-nepali173 ns - Swift44× fasterNepDate 21 ns
Nepali-Date-Picker-SPM922 ns - Kotlin19× fasterNepDate 21 ns
adbs403 ns - TypeScript12× fasterNepDate 31 ns
nepali-datetime380 ns - Python1.7× fasterNepDate 724 ns
bikram-sambat1.24 µs
Convert a date
This runs nepdate-core in your browser, with thedate picker for the BS field. Type a BS date in numbers or with the month name, choose it from the calendar, or pick an AD date.
The patro, in its own package
Tithi, public holidays and events for BS 2077 to 2084 come from nepdate-patro and its twins in every language. Below, Kartik 22 to 28, 2083, read from it when this page was built.
- Sunday२२8ChaturdashiLaxmi PujaPublic holiday
- Monday२३9AunsiGai Puja
- Tuesday२४10PratipadhaGovardhan PujaPublic holiday
- Wednesday२५11DwitiyaBhai TikaPublic holiday
- Thursday२६12TritiyaWorld Pneumonia Day
- Friday२७13Chaturthi
- Saturday२८14PanchamiWorld Diabetes Day
Holidays in red, events marked with a dot. Patro data is informational, not an official calendar.
Checked, not assumed
The calendar data and the behaviour live once, in the hub repository. Each port copies them and generates its tables at build time; a check fails when a copy drifts. Then every port runs the same files.
How the ports are kept in step- 7,176 month boundaries
- The first and last day of every BS month from 1901 to 2199.
- 20,360 golden rows
- Dates, added days and added months, recorded from C# NepDate 2.0.7.
- 0 port-only differences
- Where a port differs from C#, every port differs the same way, and it is written down.
MitiBar
Today's BS date in the tray, a month with tithi and holidays one click away, and on Windows a small bar with the date and time wherever you put it. Win+Shift+N opens it. No network requests.
Windows, macOS and Linux. The beta is not code-signed; the release notes say how to open and verify it.
On your phone
NepDate for Android and iOS, with home-screen widgets and no ads, account or network, is in development. Follow along.


Built on NepDate
The calendar data and the algorithm come from NepDate, the C# library by Raju Prasai and contributors, used with the author's agreement. Fixes go there first and reach every port from one place.
Found a wrong date?
Report a wrong date, holiday or tithi once, with the data error form. One fix in the hub reaches every language.

