Skip to content

Examples ​

This section provides practical code examples for common tasks with the Nepali Date Library in Python.

Quick Navigation ​

CategoryDescription
Basic UsageCreating dates, getting values
FormattingEnglish and Nepali formatting
ConversionAD ↔ BS conversion
ManipulationAdding/subtracting time
ComparisonComparing dates
QuartersWorking with quarters
Fiscal YearFiscal year operations
CalendarBuilding calendars

Basic Usage ​

Create Dates ​

python
from nepali_date_library import NepaliDate
from datetime import datetime

# Current date
today = NepaliDate()

# From year, month (0-indexed), day
date1 = NepaliDate(2082, 9, 15) # Magh 15, 2082

# From string
date2 = NepaliDate("2082-10-15")

# From Python datetime
date3 = NepaliDate(datetime.strptime("2026-01-14", "%Y-%m-%d"))

# Clone
date4 = today.clone()

Get Date Components ​

python
from nepali_date_library import NepaliDate

date = NepaliDate(2082, 9, 15)

print(date.get_year())  # 2082
print(date.get_month()) # 9 (Magh)
print(date.get_date())  # 15
print(date.get_day())   # 3 (Wednesday)
print(str(date))        # '2082/10/15'

Formatting ​

English Format ​

python
from nepali_date_library import NepaliDate

date = NepaliDate(2082, 9, 15)

print(date.format("YYYY-MM-DD"))          # '2082-10-15'
print(date.format("YYYY/MM/DD"))          # '2082/10/15'
print(date.format("MMM D, YYYY"))         # 'Mag 15, 2082'
print(date.format("MMMM DD, YYYY"))       # 'Magh 15, 2082'
print(date.format("DDDD"))                # 'Wednesday'
print(date.format("DDDD, MMMM DD"))       # 'Wednesday, Magh 15'

Nepali Format ​

python
from nepali_date_library import NepaliDate

date = NepaliDate(2082, 9, 15)

print(date.format("yyyy-mm-dd"))          # '२०८२-१०-१५'
print(date.format("mmmm dd, yyyy"))       # 'माघ १५, २०८२'
print(date.format("dddd"))                # 'बुधबार'
print(date.format("dddd, mmmm dd"))       # 'बुधबार, माघ १५'

Mixed Format ​

python
from nepali_date_library import NepaliDate

date = NepaliDate(2082, 9, 15)

# English date, Nepali day name
print(date.format("MMMM DD, YYYY (dddd)"))
# 'Magh 15, 2082 (बुधबार)'

# Nepali date, English day name
print(date.format("mmmm dd, yyyy (DDDD)"))
# 'माघ १५, २०८२ (Wednesday)'

Conversion ​

AD to BS ​

python
from nepali_date_library import ADtoBS

print(ADtoBS("2026-01-14")) # '2082-10-01'
print(ADtoBS("2024-04-13")) # '2081-01-01' (New Year)
print(ADtoBS("2025-12-25")) # '2082-09-10'

BS to AD ​

python
from nepali_date_library import BStoAD

print(BStoAD("2082-10-01")) # '2026-01-14'
print(BStoAD("2082-01-01")) # '2025-04-14' (New Year)
print(BStoAD("2081-12-30")) # '2025-04-13'

Using NepaliDate Class ​

python
from nepali_date_library import NepaliDate
from datetime import datetime

# AD to BS
ad_date = datetime.strptime("2026-01-14", "%Y-%m-%d")
bs_date = NepaliDate(ad_date)
print(bs_date.format("YYYY-MM-DD")) # '2082-10-01'

# BS to AD
nepali_date = NepaliDate("2082-10-01")
english_date = nepali_date.get_english_date()
print(english_date.strftime("%Y-%m-%d")) # '2026-01-14'

Manipulation ​

Add Days ​

python
from nepali_date_library import NepaliDate

date = NepaliDate(2082, 9, 15)

tomorrow = date.add_days(1)
print(tomorrow.format("YYYY-MM-DD")) # '2082-10-16'

next_week = date.add_days(7)
print(next_week.format("YYYY-MM-DD")) # '2082-10-22'

yesterday = date.add_days(-1)
print(yesterday.format("YYYY-MM-DD")) # '2082-10-14'

Add Months ​

python
from nepali_date_library import NepaliDate

date = NepaliDate(2082, 9, 15)

next_month = date.add_months(1)
print(next_month.format("MMMM YYYY")) # 'Falgun 2082'

three_months_ago = date.add_months(-3)
print(three_months_ago.format("MMMM YYYY")) # 'Kartik 2082'

Add Years ​

python
from nepali_date_library import NepaliDate

date = NepaliDate(2082, 9, 15)

next_year = date.add_years(1)
print(next_year.format("YYYY")) # '2083'

five_years_ago = date.add_years(-5)
print(five_years_ago.format("YYYY")) # '2077'

Comparison ​

Compare Dates ​

python
from nepali_date_library import NepaliDate

date1 = NepaliDate(2082, 9, 10)
date2 = NepaliDate(2082, 9, 20)

print(date1.is_before(date2)) # True
print(date1.is_after(date2))  # False
print(date1.is_equal(date2))  # False

date3 = NepaliDate(2082, 9, 10)
print(date1.is_equal(date3))  # True

Compare by Unit ​

python
from nepali_date_library import NepaliDate

date1 = NepaliDate(2082, 9, 10)
date2 = NepaliDate(2082, 9, 20)

print(date1.is_same(date2, "year"))  # True
print(date1.is_same(date2, "month")) # True
print(date1.is_same(date2, "day"))   # False

Calculate Difference ​

python
from nepali_date_library import NepaliDate

date1 = NepaliDate(2082, 0, 1)   # Baisakh 1
date2 = NepaliDate(2082, 11, 30) # Chaitra 30

print(date1.diff(date2, "day"))   # ~365 days
print(date1.diff(date2, "month")) # 11
print(date1.diff(date2, "year"))  # 0

Quarters ​

Get Current Quarter ​

python
from nepali_date_library import NepaliDate

date = NepaliDate(2082, 9, 15)
quarter = date.current_quarter()
print(f"Quarter: Q{quarter}") # Q4 (Magh is in Q4)

Get Quarter Dates ​

python
from nepali_date_library import NepaliDate

q1 = NepaliDate.get_quarter(1, 2082)
print(f"Q1 Start: {q1['start'].format('MMMM DD')}") # Baisakh 01
print(f"Q1 End: {q1['end'].format('MMMM DD')}")     # Asar 30/31

Get All Quarters ​

python
from nepali_date_library import NepaliDate

quarters = NepaliDate.get_quarters(2082)

for key, value in quarters.items():
    print(f"{key}: {value['start'].format('MMM')} - {value['end'].format('MMM YYYY')}")

# Q1: Bai - Asa 2082
# Q2: Shr - Asw 2082
# ...

Fiscal Year ​

Current Fiscal Year ​

python
from nepali_date_library import NepaliDate

fy = NepaliDate.current_fiscal_year()
print(f"Fiscal Year: {fy}/{fy + 1}") # 2081/82

Fiscal Quarter ​

python
from nepali_date_library import NepaliDate

date = NepaliDate()
fq = date.fiscal_quarter()
print(f"Fiscal Quarter: FQ{fq}")

Fiscal Year Quarters ​

python
from nepali_date_library import NepaliDate

fy_quarters = NepaliDate.get_fiscal_quarters(2081)

print("FY 2081/82:")
print(f"  FQ1: {fy_quarters['Q1']['start'].format('MMM YYYY')} - {fy_quarters['Q1']['end'].format('MMM YYYY')}")
print(f"  FQ2: {fy_quarters['Q2']['start'].format('MMM YYYY')} - {fy_quarters['Q2']['end'].format('MMM YYYY')}")
print(f"  FQ3: {fy_quarters['Q3']['start'].format('MMM YYYY')} - {fy_quarters['Q3']['end'].format('MMM YYYY')}")
print(f"  FQ4: {fy_quarters['Q4']['start'].format('MMM YYYY')} - {fy_quarters['Q4']['end'].format('MMM YYYY')}")

Calendar ​

Generate Calendar ​

python
from nepali_date_library import NepaliDate

calendar = NepaliDate.get_calendar_days(2082, 9)

print("Previous month days:", calendar["prev_month"]["days"])
print("Current month days:", calendar["current_month"]["days"])
print("Next month days:", calendar["next_month"]["days"])

Simple Calendar Display ​

python
from nepali_date_library import NepaliDate, week_short_en

def print_calendar(year: int, month: int):
    date = NepaliDate(year, month, 1)
    calendar = NepaliDate.get_calendar_days(year, month)

    print(f"\n  {date.format('MMMM YYYY')}")
    print(" " + " ".join(week_short_en))

    all_days = (
        [f"({d})" for d in calendar["prev_month"]["days"]] +
        [str(d).rjust(3) for d in calendar["current_month"]["days"]] +
        [f"({d})" for d in calendar["next_month"]["days"]]
    )

    for i in range(0, len(all_days), 7):
        print(" ".join(all_days[i:i+7]))

print_calendar(2082, 9) # Magh 2082

Released under the MIT License.