Package detail

antd-date-picker-nepali

This is a antd component for nepali datepicker.

antd, date-picker, react, nepali

readme

Nepali Date Picker

A TypeScript-based date picker that supports both Gregorian (AD) and Nepali (BS) calendars, built on top of Ant Design for react.

Table of Contents

Installation

npm install antd-date-picker-nepali

Features

  • Convert AD dates to BS (Nepali) dates and vice versa
  • Validate Nepali dates
  • Get weekday information
  • Get days in Nepali months
  • Type-safe with TypeScript support

Usage

Basic Usage

import NepaliDateConverter from "antd-date-picker-nepali";

// Get today's date in Nepali calendar
const todayNepali = NepaliDateConverter.getTodayBs();

Then, you can use the Nepali date picker component in your React project as follows:

import React from 'react';
import { NepaliDatePicker } from 'antd-date-picker-nepali';
import 'antd/dist/antd.css';

const App = () => {
  const onChange = (date: any, dateString: string) => {
    console.log(date, dateString);
  };

  return (
    <div>
      <h1>Nepali Date Picker</h1>
      <NepaliDatePicker onChange={onChange} />
    </div>
  );
};

export default App;

Components

NepaliDatePicker

The NepaliDatePicker component supports all the same props as the Ant Design DatePicker component. Please refer to the Ant Design DatePicker documentation for detailed information.

Here is an example of how to use the NepaliDatePicker component with additional props:

import React from 'react';
import { NepaliDatePicker } from 'antd-date-picker-nepali';
import 'antd/dist/antd.css';

const App = () => {
  const onChange = (date: any, dateString: string) => {
    console.log(date, dateString);
  };

  return (
    <div>
      <h1>Nepali Date Picker</h1>
      <NepaliDatePicker
        onChange={onChange}
        placeholder="Select date"
        format="YYYY-MM-DD"
        showToday
      />
    </div>
  );
};

export default App;

NepaliRangePicker

The NepaliRangePicker component supports all the same props as the Ant Design RangePicker component. Please refer to the Ant Design RangePicker documentation for detailed information.

Here is an example of how to use the NepaliRangePicker component with additional props:

import React from 'react';
import { NepaliRangePicker } from 'antd-date-picker-nepali';
import 'antd/dist/antd.css';

const App = () => {
  const onChange = (dates: any, dateStrings: [string, string]) => {
    console.log(dates, dateStrings);
  };

  return (
    <div>
      <h1>Nepali Range Picker</h1>
      <NepaliRangePicker
        onChange={onChange}
        placeholder={['Start date', 'End date']}
        format="YYYY-MM-DD"
        showTime
      />
    </div>
  );
};

export default App;

API Reference

Component Props

Both components support all standard Ant Design DatePicker props plus these additional props:

Prop Type Default Description
type "ne" \ "en" "en" Calendar type to display
lang "ne" \ "en" "en" Calendar languange type

NepaliDateConverter Methods

Static methods for converting and managing Nepali dates.

Methods

validateBsDate(bsDate: NepaliDateType): boolean

Validates if a given Nepali date is valid.

const date = { year: 2080, month: 13, day: 1 };
const isValid = NepaliDateConverter.validateBsDate(date); // false (invalid month)
getTodayBs(): NepaliDateType

Returns today's date in Nepali calendar.

const today = NepaliDateConverter.getTodayBs();
getWeekDay(bsDate: NepaliDateType): number

Returns the day of week (0 = Sunday, 6 = Saturday) for a given Nepali date.

const weekday = NepaliDateConverter.getWeekDay({
  year: 2080,
  month: 1,
  day: 1,
});
adToBs(adDate: Dayjs | Date | string): NepaliDateType

Converts an AD date to BS (Nepali) date.

const nepaliDate = NepaliDateConverter.adToBs(new Date());
// or
const nepaliDate = NepaliDateConverter.adToBs("2023-08-15");
bsToAd(bsDate: NepaliDateType): Dayjs

Converts a BS (Nepali) date to AD date.

const adDate = NepaliDateConverter.bsToAd({
  year: 2080,
  month: 8,
  day: 15,
});
getNepaliDate(adDate: Date): NepaliDateType

Convenience method to get Nepali date from AD date.

const nepaliDate = NepaliDateConverter.getNepaliDate(new Date());
getEnglishDate(npYear: number, npMonth: number, npDay: number): Date

Convenience method to get AD date from Nepali date components.

const adDate = NepaliDateConverter.getEnglishDate(2080, 8, 15);
getDaysInMonth(year: number, month: number): number

Returns the number of days in a given Nepali month.

const days = NepaliDateConverter.getDaysInMonth(2080, 8);

Types

NepaliDateType

interface NepaliDateType {
  year: number;
  month: number;
  day: number;
}

Contributing

If you want to contribute to this project, please follow these steps:

  • Fork the repository.
  • Create a new branch (git checkout -b feature-branch).
  • Make your changes and commit them (git commit -am 'Add new feature').
  • Push to the branch (git push origin feature-branch).
  • Create a new Pull Request.

License

This project is licensed under the MIT License.