Nepali DateNepali DateBikram Sambat Date Engine

Project Overview

Comprehensive overview of the Nepali Date Library multi-language ecosystem, live package metrics, architecture, and developer profile.

The Nepali Date Library is an open-source, production-grade computational suite engineered to bring accurate, standardized, and zero-dependency Bikram Sambat (BS) date operations to modern software ecosystems across Node.js / TypeScript, Python, and PHP.

Whether you are building financial banking software adhering to Nepal's Shrawan-to-Ashadh fiscal calendar, government enterprise portals, e-commerce checkouts, or mobile applications, the suite provides unified semantics and continuously audited calendar tables.


Ecosystem Distributions & Metrics

The library is officially distributed across the primary package registries of each supported language ecosystem:

Node.js / TypeScript
npm
Package
nepali-date-library
Downloads & Version
Monthly DownloadsTotal DownloadsVersion
Python
PyPI
Package
nepali-date-library
Downloads & Version
Monthly DownloadsVersionPython Versions
PackagistPHP
Packagist
Package
sghimire/nepali-date-library
Downloads & Version
Monthly DownloadsTotal DownloadsVersion

Core Architectural Pillars

The library suite is built around five foundational design principles:

1. Zero External Dependencies

Every package in the suite is built from the ground up without runtime external dependencies. This eliminates supply-chain risks, avoids version conflicts, and keeps bundle footprints minimal.

2. Standardized Cross-Language API

Developers working across full-stack applications (e.g., a Python backend with a Node.js frontend or a PHP Laravel service with a TypeScript worker) enjoy identical method names, formatting tokens, and date manipulation semantics.

3. Annual Calendar Verification & 124-Year Range (1976 – 2100 BS)

Because Bikram Sambat months are based on solar ingress (Sankranti) and vary from 29 to 32 days based on astronomical solar transit, official month lengths are determined each year by the Nepal Panchanga Nirnayak Samiti (नेपाल पञ्चाङ्ग निर्णायक समिति). Every year around the month of Ashwin (Ashoj), when the Government of Nepal officially gazettes the upcoming year's calendar, the library audits and updates its mapping data. Dates up to the current active calendar year are verified against official gazettes, while future projections up to 2100 BS are systematically updated each year upon official publication.

4. High-Throughput Performance

All date conversions and arithmetic execute in under a few microseconds, making the library suitable for high-frequency database batch migrations, real-time analytics pipelines, and edge compute functions.

5. Built-In Nepalese Fiscal Year Logic

Native support for Nepal's official fiscal calendar (Aarthik Barsha), running from 1 Shrawan to the final day of Ashadh, including quarter categorization (Q1 to Q4) and fiscal year string formatting (2081/82).


Feature Matrix Across SDKs

Feature CapabilityNode.js / TypeScriptPythonPHP
Bidirectional AD ↔ BS ConversionYesYesYes
Supported Range (1976 – 2100 BS)YesYesYes
Date Arithmetic (+/- Days, Months, Years)YesYesYes
Custom Format Tokens (YYYY-MM-DD, etc.)YesYesYes
Nepali Fiscal Year & Quarter CalculationYesYesYes
Devanagari Numerals & Month NamesYesYesYes
Strict Type Safety & IntelliSenseTypeScript types (.d.ts)Type hints (py.typed)PHP 8.0+ strict typing
Zero Runtime DependenciesYesYesYes
Package Distributionnpm / yarn / pnpmPyPI (pip / uv / poetry)Packagist (Composer)

Maintainer

Created and maintained by Sandip Ghimire:

Sandip Ghimire
Sandip Ghimire@SandipGhimire

Developer from Nepal. Built this library to make Bikram Sambat date calculations simple and consistent across Node.js, Python, and PHP.

GitHub

Open Source & Licensing

The entire Nepali Date Library suite is released under the permissive MIT License, permitting unrestricted commercial use, modification, distribution, and private deployment.

Contributions, feature proposals, and bug reports are warmly welcomed across the respective GitHub repositories:

  • Submit issues or pull requests to the corresponding language repository.
  • Follow standard semantic versioning practices when proposing changes.
  • Ensure that any proposed additions preserve zero external runtime dependencies.
Advertisement

On this page