persian-date-utils
v1.0.0
Published
A utility library for Persian (Shamsi) date formatting and conversion
Readme
# Persian Date Utilities
A lightweight and efficient JavaScript/TypeScript library for working with the Persian (Shamsi) calendar. It provides features to convert, format, and manipulate Persian dates seamlessly using pure JavaScript.
## Features
- Convert Persian dates to Gregorian and vice versa.
- Format Persian dates in various styles (e.g., `YYYY/MM/DD`, `DD-MM-YYYY`, `Weekday, DD Month YYYY`).
- Calculate Persian week numbers (1–52).
- Handle leap years in the Persian calendar.
- Convert Persian digits to Latin digits.
## Installation
### Using npm
```bash
npm install persian-date-utilsUsing yarn
yarn add persian-date-utilsUsing pnpm
pnpm add persian-date-utilsUsage
Import the Library
import {
getShamsiDateYMD,
getShamsiDateFull,
convertToGregorianDate,
isShamsiLeapYear,
getShamsiWeek
} from 'persian-date-utils';Examples
Get the Current Persian Date in YYYY/MM/DD Format
console.log(getShamsiDateYMD());
// Output: "1402/10/28" (example)Get the Full Persian Date with Weekday
console.log(getShamsiDateFull());
// Output: "شنبه، 28 دی 1402" (example)Convert a Persian Date to Gregorian
const persianDate = "1402/10/28";
console.log(convertToGregorianDate(persianDate));
// Output: "2024-01-17" (example)Check if a Year is a Leap Year in the Persian Calendar
console.log(isShamsiLeapYear(1402));
// Output: falseGet the Current Persian Week Number
console.log(getShamsiWeek());
// Output: "42" (example, depending on the date)API Documentation
getShamsiDateYMD()
Returns the current Persian date in YYYY/MM/DD format.
getShamsiDateFull()
Returns the full Persian date with the weekday in Weekday, DD Month YYYY format.
convertToGregorianDate(persianDate: string)
Converts a Persian date in YYYY/MM/DD format to a Gregorian date.
- Parameter:
persianDate(string) – The Persian date to convert. - Returns: A string representing the Gregorian date in
YYYY-MM-DDformat.
isShamsiLeapYear(year: number)
Checks if a given Persian year is a leap year.
- Parameter:
year(number) – The Persian year to check. - Returns:
trueif the year is a leap year, otherwisefalse.
getShamsiWeek()
Returns the current week number in the Persian calendar.
Contributing
Contributions are welcome! If you'd like to add new features, improve the code, or fix bugs:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/new-feature). - Commit your changes (
git commit -m 'Add new feature'). - Push to the branch (
git push origin feature/new-feature). - Open a pull request.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Acknowledgments
This library leverages the following:
Intl.DateTimeFormatfor Persian calendar support.- Pure JavaScript methods for all computations and conversions.
