UNPKG

to-bengali

Version:

A lightweight npm package to translate numbers and dates to Bengali language.

133 lines (132 loc) 5.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BengaliDate = void 0; const bengali_number_1 = require("./bengali-number"); const monthsInBengali = [ 'জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর' ]; const daysInBengali = [ "রবি", "সোম", "মঙ্গল", "বুধ", "বৃহস্পতি", "শুক্র", "শনি" ]; class BengaliDate { constructor(dateTime = new Date()) { this.dateTime = dateTime; } get bngDate() { const date = this.dateTime.getDate(); return new bengali_number_1.BengaliNumber(date).bngValue; } get bngMonthInNumber() { const monthNumber = this.dateTime.getMonth() + 1; return new bengali_number_1.BengaliNumber(monthNumber).bngValue; } get bngMonth() { const monthNumber = this.dateTime.getMonth(); return monthsInBengali[monthNumber]; } get bngFullYear() { const fullYear = this.dateTime.getFullYear(); return new bengali_number_1.BengaliNumber(fullYear).bngValue; } get bngYear() { const year = this.dateTime.getFullYear(); return new bengali_number_1.BengaliNumber(year).bngValue.slice(-2); } get bngHours() { const hours = this.dateTime.getHours(); return new bengali_number_1.BengaliNumber(hours).bngValue; } get bngHoursInTwelveHourFormat() { const hours = this.dateTime.getHours() % 12 === 0 ? 12 : this.dateTime.getHours() % 12; return new bengali_number_1.BengaliNumber(hours).bngValue; } get bngMinutes() { const minutes = this.dateTime.getMinutes(); return new bengali_number_1.BengaliNumber(minutes).bngValue; } get bngSeconds() { const seconds = this.dateTime.getSeconds(); return new bengali_number_1.BengaliNumber(seconds).bngValue; } get bngTimeName() { const hours = this.dateTime.getHours(); if (hours >= 4 && hours <= 6) { return 'ভোর'; } if (hours >= 7 && hours <= 11) { return 'সকাল'; } if (hours >= 12 && hours <= 15) { return 'দুপুর'; } if (hours >= 16 && hours <= 17) { return 'বিকাল'; } if (hours >= 18 && hours <= 19) { return 'সন্ধ্যা'; } return 'রাত'; } get bngDay() { const dayNumber = this.dateTime.getDay(); if (dayNumber < 0) { return ''; } if (dayNumber > 6) { return ''; } return daysInBengali[dayNumber]; } get bngFullDay() { const dayNumber = this.dateTime.getDay(); if (dayNumber < 0) { return ''; } if (dayNumber > 6) { return ''; } return daysInBengali[dayNumber] + 'বার'; } get engTimeName() { if (this.dateTime.getHours() >= 12) { return 'PM'; } return 'AM'; } format(pattern = 'date-time') { if (pattern === 'date') { return `${this.bngDate} ${this.bngMonth}, ${this.bngFullYear}`; } if (pattern === 'time') { return `${this.bngTimeName} ${this.bngHoursInTwelveHourFormat.padStart(2, '০')}:${this.bngMinutes.padStart(2, '০')}`; } if (pattern === 'date-time') { return `${this.bngDate} ${this.bngMonth}, ${this.bngFullYear} ${this.bngTimeName} ${this.bngHoursInTwelveHourFormat.padStart(2, '০')}:${this.bngMinutes.padStart(2, '০')}`; } if (pattern === 'date-day-time') { return `${this.bngDate} ${this.bngMonth}, ${this.bngFullYear} ${this.bngFullDay} ${this.bngTimeName} ${this.bngHoursInTwelveHourFormat.padStart(2, '০')}:${this.bngMinutes.padStart(2, '০')}`; } pattern = pattern.replace(/YYYY/g, this.bngFullYear); pattern = pattern.replace(/YY/g, this.bngYear); pattern = pattern.replace(/MMMM/g, this.bngMonth); pattern = pattern.replace(/MM/g, this.bngMonthInNumber.padStart(2, '০')); pattern = pattern.replace(/M/g, this.bngMonthInNumber); pattern = pattern.replace(/DD/g, this.bngDate.padStart(2, '০')); pattern = pattern.replace(/D/g, this.bngDate); pattern = pattern.replace(/dddd/g, this.bngFullDay); pattern = pattern.replace(/dd/g, this.bngDay); pattern = pattern.replace(/AAAA/g, this.bngTimeName); pattern = pattern.replace(/AA/g, this.engTimeName); pattern = pattern.replace(/aa/g, this.engTimeName.toLowerCase()); pattern = pattern.replace(/hh/g, this.bngHoursInTwelveHourFormat.padStart(2, '০')); pattern = pattern.replace(/h/g, this.bngHoursInTwelveHourFormat); pattern = pattern.replace(/HH/g, this.bngHours.padStart(2, '০')); pattern = pattern.replace(/H/g, this.bngHours); pattern = pattern.replace(/mm/g, this.bngMinutes.padStart(2, '০')); pattern = pattern.replace(/m/g, this.bngMinutes); pattern = pattern.replace(/ss/g, this.bngSeconds.padStart(2, '০')); pattern = pattern.replace(/s/g, this.bngSeconds); return pattern; } } exports.BengaliDate = BengaliDate;