nepali-date-library 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ReadMe.md +215 -169
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs.js +1 -1
- package/package.json +2 -3
package/ReadMe.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# NepaliDate Library
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
|
-
The `NepaliDate` library provides a way to work with Nepali (Bikram Sambat) dates in TypeScript/JavaScript. It allows you to create, manipulate, format, and convert between Nepali and Gregorian dates.
|
|
4
|
+
The `NepaliDate` library provides a proper way to work with Nepali (Bikram Sambat) dates in TypeScript/JavaScript. It allows you to create, manipulate, format, and convert between Nepali and Gregorian dates with support for fiscal years, quarters, and extensive date operations.
|
|
5
5
|
|
|
6
6
|
## Installation
|
|
7
7
|
```sh
|
|
@@ -10,10 +10,11 @@ npm install nepali-date-library
|
|
|
10
10
|
|
|
11
11
|
## Importing the Library
|
|
12
12
|
```ts
|
|
13
|
-
import { NepaliDate } from 'nepali-date-library';
|
|
13
|
+
import { NepaliDate, ADtoBS, BStoAD } from 'nepali-date-library';
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
## Class: `NepaliDate`
|
|
17
|
+
|
|
17
18
|
### Constructors
|
|
18
19
|
```ts
|
|
19
20
|
new NepaliDate();
|
|
@@ -24,41 +25,43 @@ new NepaliDate(year: number, month: number, day: number);
|
|
|
24
25
|
- Accepts either no arguments (current date), a JavaScript `Date`, another `NepaliDate`, a timestamp, or a formatted date string.
|
|
25
26
|
- Can also accept year, month (0-11), and day (1-32) as separate arguments.
|
|
26
27
|
|
|
27
|
-
###
|
|
28
|
-
#### Date Conversion
|
|
28
|
+
### Date Conversion Functions
|
|
29
29
|
|
|
30
|
+
#### Pre-built Conversion Functions
|
|
30
31
|
```ts
|
|
31
|
-
//PreBuild Functions
|
|
32
|
-
|
|
33
32
|
import { ADtoBS, BStoAD } from 'nepali-date-library';
|
|
33
|
+
|
|
34
34
|
// Convert AD to BS
|
|
35
35
|
const bsDate = ADtoBS('2025-02-22'); // Returns: '2081-10-10'
|
|
36
|
+
|
|
36
37
|
// Convert BS to AD
|
|
37
38
|
const adDate = BStoAD('2081-10-14'); // Returns: '2025-02-26'
|
|
39
|
+
```
|
|
38
40
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
#### Class Method
|
|
42
|
+
```ts
|
|
43
|
+
const nepaliDate = new NepaliDate();
|
|
44
|
+
const adDate = nepaliDate.getEnglishDate(); // Returns JavaScript Date object
|
|
41
45
|
```
|
|
42
46
|
|
|
43
47
|
---
|
|
44
48
|
|
|
45
|
-
|
|
49
|
+
### Getters
|
|
46
50
|
```ts
|
|
47
|
-
getYear(): number;
|
|
48
|
-
getMonth(): number;
|
|
49
|
-
getDate(): number;
|
|
50
|
-
getDay(): number;
|
|
51
|
-
getHours(): number;
|
|
52
|
-
getMinutes(): number;
|
|
53
|
-
getSeconds(): number;
|
|
54
|
-
getMilliseconds(): number;
|
|
55
|
-
getTime(): number;
|
|
51
|
+
getYear(): number; // Returns Nepali year
|
|
52
|
+
getMonth(): number; // Returns Nepali month (0-11)
|
|
53
|
+
getDate(): number; // Returns Nepali day (1-32)
|
|
54
|
+
getDay(): number; // Returns day of week (0-6, 0 = Sunday)
|
|
55
|
+
getHours(): number; // Returns hour (0-23)
|
|
56
|
+
getMinutes(): number; // Returns minutes (0-59)
|
|
57
|
+
getSeconds(): number; // Returns seconds (0-59)
|
|
58
|
+
getMilliseconds(): number; // Returns milliseconds (0-999)
|
|
59
|
+
getTime(): number; // Returns timestamp in milliseconds
|
|
56
60
|
```
|
|
57
|
-
- Returns individual date components like year, month (0-11), day (1-32), and other time properties.
|
|
58
61
|
|
|
59
62
|
---
|
|
60
63
|
|
|
61
|
-
|
|
64
|
+
### Setters
|
|
62
65
|
```ts
|
|
63
66
|
setYear(year: number): void;
|
|
64
67
|
setMonth(month: number): void;
|
|
@@ -69,38 +72,47 @@ set(year: number, month: number, day: number): void;
|
|
|
69
72
|
|
|
70
73
|
---
|
|
71
74
|
|
|
72
|
-
|
|
75
|
+
### Parsing
|
|
76
|
+
```ts
|
|
77
|
+
parse(dateString: string): void;
|
|
78
|
+
```
|
|
79
|
+
- Parses a date string and updates the current instance
|
|
80
|
+
- Supports formats: YYYY-MM-DD, YYYY/MM/DD, or YYYY.MM.DD
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
### Formatting
|
|
73
85
|
```ts
|
|
74
86
|
format(formatStr: string): string;
|
|
87
|
+
toString(): string; // Returns format: YYYY/MM/DD (1-indexed month)
|
|
75
88
|
```
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
#### Date Manipulation
|
|
89
|
+
|
|
90
|
+
#### Available Format Tokens:
|
|
91
|
+
- **English Formats:**
|
|
92
|
+
- `YYYY` - Full Year (e.g., 2080)
|
|
93
|
+
- `MM` - Month with leading zero (01-12)
|
|
94
|
+
- `M` - Month without leading zero (1-12)
|
|
95
|
+
- `MMM` - Short month name (Bai, Cha)
|
|
96
|
+
- `MMMM` - Long month name (Baisakh, Chaitra)
|
|
97
|
+
- `DD` - Day with leading zero (01-32)
|
|
98
|
+
- `D` - Day without leading zero (1-32)
|
|
99
|
+
- `DDD` - Short day name (Sun, Sat)
|
|
100
|
+
- `DDDD` - Full day name (Sunday)
|
|
101
|
+
|
|
102
|
+
- **Nepali Formats:**
|
|
103
|
+
- `yyyy` - Full Year (e.g., २०८१)
|
|
104
|
+
- `mm` - Month with leading zero (०१-१२)
|
|
105
|
+
- `m` - Month without leading zero (१-१२)
|
|
106
|
+
- `mmm` - Short month name (बै, चै)
|
|
107
|
+
- `mmmm` - Long month name (बैशाख, चैत्र)
|
|
108
|
+
- `dd` - Day with leading zero (०१-३२)
|
|
109
|
+
- `d` - Day without leading zero (१-३२)
|
|
110
|
+
- `ddd` - Short day name (आइत, शनि)
|
|
111
|
+
- `dddd` - Full day name (आइतबार)
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
### Date Manipulation
|
|
104
116
|
```ts
|
|
105
117
|
addDays(days: number): NepaliDate;
|
|
106
118
|
addMonths(months: number): NepaliDate;
|
|
@@ -110,207 +122,241 @@ addYears(years: number): NepaliDate;
|
|
|
110
122
|
|
|
111
123
|
---
|
|
112
124
|
|
|
113
|
-
###
|
|
125
|
+
### Date Information Methods
|
|
114
126
|
|
|
115
127
|
#### `daysInMonth(): number`
|
|
116
128
|
Returns the number of days in the current month.
|
|
117
129
|
|
|
118
|
-
```ts
|
|
119
|
-
const date = new NepaliDate(2080, 5, 1);
|
|
120
|
-
console.log(date.daysInMonth()); // Outputs the number of days in the given month
|
|
121
|
-
```
|
|
122
|
-
|
|
123
130
|
#### `isLeapYear(): boolean`
|
|
124
131
|
Checks if the current year is a leap year in the Nepali calendar.
|
|
125
132
|
|
|
126
|
-
```ts
|
|
127
|
-
const date = new NepaliDate(2080, 1, 1);
|
|
128
|
-
console.log(date.isLeapYear()); // Returns true if it is a leap year
|
|
129
|
-
```
|
|
130
|
-
|
|
131
133
|
#### `getWeeksInMonth(): number`
|
|
132
134
|
Calculates the number of weeks in the current month.
|
|
133
135
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
```
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
### Date Comparison Methods
|
|
138
139
|
|
|
139
140
|
#### `diff(date: NepaliDate, unit: 'year' | 'month' | 'day'): number`
|
|
140
|
-
Calculates the difference between two `NepaliDate` instances
|
|
141
|
+
Calculates the difference between two `NepaliDate` instances.
|
|
141
142
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const date2 = new NepaliDate(2079, 5, 10); // Another example date
|
|
143
|
+
#### `isAfter(date: NepaliDate): boolean`
|
|
144
|
+
Checks if this date comes after the specified date.
|
|
145
145
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
146
|
+
#### `isBefore(date: NepaliDate): boolean`
|
|
147
|
+
Checks if this date comes before the specified date.
|
|
148
|
+
|
|
149
|
+
#### `isEqual(date: NepaliDate): boolean`
|
|
150
|
+
Checks if this date is exactly equal to the specified date (year, month, day).
|
|
151
|
+
|
|
152
|
+
#### `isSame(date: NepaliDate, unit: 'year' | 'month' | 'day'): boolean`
|
|
153
|
+
Checks if this date is the same as the specified date for the given unit.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### Date Range Methods
|
|
150
158
|
|
|
151
159
|
#### `startOfDay(): NepaliDate`
|
|
152
160
|
Returns a new `NepaliDate` representing the start of the current day (00:00:00).
|
|
153
161
|
|
|
154
|
-
```ts
|
|
155
|
-
const date = new NepaliDate(2080, 5, 10);
|
|
156
|
-
console.log(date.startOfDay());
|
|
157
|
-
```
|
|
158
|
-
|
|
159
162
|
#### `endOfDay(): NepaliDate`
|
|
160
163
|
Returns a new `NepaliDate` representing the end of the current day (23:59:59.999).
|
|
161
164
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
165
|
+
#### `startOfWeek(startOfWeek: number = 0): NepaliDate`
|
|
166
|
+
Returns a new `NepaliDate` representing the start of the week containing this date.
|
|
167
|
+
- `startOfWeek`: Day to consider as start of week (0-6, where 0 = Sunday, 1 = Monday, etc.)
|
|
168
|
+
|
|
169
|
+
#### `endOfWeek(startOfWeek: number = 0): NepaliDate`
|
|
170
|
+
Returns a new `NepaliDate` representing the end of the week containing this date.
|
|
166
171
|
|
|
167
172
|
#### `startOfMonth(): NepaliDate`
|
|
168
173
|
Returns a new `NepaliDate` representing the first day of the current month.
|
|
169
174
|
|
|
170
|
-
```ts
|
|
171
|
-
const date = new NepaliDate(2080, 5, 10);
|
|
172
|
-
console.log(date.startOfMonth());
|
|
173
|
-
```
|
|
174
|
-
|
|
175
175
|
#### `endOfMonth(): NepaliDate`
|
|
176
176
|
Returns a new `NepaliDate` representing the last day of the current month.
|
|
177
177
|
|
|
178
|
-
```ts
|
|
179
|
-
const date = new NepaliDate(2080, 5, 10);
|
|
180
|
-
console.log(date.endOfMonth());
|
|
181
|
-
```
|
|
182
|
-
|
|
183
178
|
#### `startOfYear(): NepaliDate`
|
|
184
179
|
Returns a new `NepaliDate` representing the first day of the current Nepali year (1st Baisakh).
|
|
185
180
|
|
|
186
|
-
```ts
|
|
187
|
-
const date = new NepaliDate(2080, 5, 10);
|
|
188
|
-
console.log(date.startOfYear());
|
|
189
|
-
```
|
|
190
|
-
|
|
191
181
|
#### `endOfYear(): NepaliDate`
|
|
192
182
|
Returns a new `NepaliDate` representing the last day of the current Nepali year (last day of Chaitra).
|
|
193
183
|
|
|
194
|
-
```ts
|
|
195
|
-
const date = new NepaliDate(2080, 5, 10);
|
|
196
|
-
console.log(date.endOfYear());
|
|
197
|
-
```
|
|
198
|
-
|
|
199
184
|
---
|
|
200
185
|
|
|
201
|
-
###
|
|
186
|
+
### Quarter and Fiscal Year Methods
|
|
187
|
+
|
|
188
|
+
#### `getCurrentQuarter(): number`
|
|
189
|
+
Returns the quarter number (1-4) for the current date.
|
|
190
|
+
|
|
191
|
+
#### `getCurrentFiscalYearQuarter(): number`
|
|
192
|
+
Returns the current fiscal year quarter number (1-4) for the current date.
|
|
193
|
+
- Fiscal year starts from Shrawan 1st (month 3, day 1)
|
|
202
194
|
|
|
203
|
-
#### `
|
|
204
|
-
|
|
205
|
-
Returns the name of the specified Nepali month in Nepali or English.
|
|
195
|
+
#### `getCurrentFiscalYearQuarterDates(): { start: NepaliDate; end: NepaliDate }`
|
|
196
|
+
Returns the start and end dates of the current fiscal year quarter.
|
|
206
197
|
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
### Static Methods
|
|
201
|
+
|
|
202
|
+
#### Date Range Utilities
|
|
207
203
|
```ts
|
|
208
|
-
|
|
204
|
+
static minimum(): Date; // Returns earliest supported date
|
|
205
|
+
static maximum(): Date; // Returns latest supported date
|
|
209
206
|
```
|
|
210
207
|
|
|
211
|
-
####
|
|
212
|
-
##### Returns
|
|
213
|
-
Returns the name of the specified day of the week in Nepali or English.
|
|
214
|
-
|
|
208
|
+
#### Validation
|
|
215
209
|
```ts
|
|
216
|
-
|
|
210
|
+
static isValid(year: number, month: number, day: number): boolean;
|
|
211
|
+
isValid(): boolean; // Instance method
|
|
217
212
|
```
|
|
218
213
|
|
|
219
|
-
####
|
|
220
|
-
|
|
221
|
-
|
|
214
|
+
#### Name Utilities
|
|
215
|
+
```ts
|
|
216
|
+
static getMonthName(month: number, short: boolean = false, nepali: boolean = false): string;
|
|
217
|
+
static getDayName(day: number, short: boolean = false, nepali: boolean = false): string;
|
|
218
|
+
```
|
|
222
219
|
|
|
220
|
+
#### Calendar Generation
|
|
223
221
|
```ts
|
|
224
|
-
|
|
222
|
+
static getCalendarDays(year: number, month: number): {
|
|
223
|
+
prevRemainingDays: number,
|
|
224
|
+
prevMonth: { year: number, month: number, days: number[] },
|
|
225
|
+
currentMonth: { year: number, month: number, days: number[] },
|
|
226
|
+
nextMonth: { year: number, month: number, days: number[] },
|
|
227
|
+
remainingDays: number
|
|
228
|
+
}
|
|
225
229
|
```
|
|
230
|
+
Generates calendar days for a given month, including trailing/leading days from adjacent months.
|
|
226
231
|
|
|
227
|
-
####
|
|
232
|
+
#### Quarter Methods
|
|
233
|
+
```ts
|
|
234
|
+
static getQuarter(quarter: number, year?: number): { start: NepaliDate; end: NepaliDate };
|
|
235
|
+
static getQuarters(year?: number): {
|
|
236
|
+
Q1: { start: NepaliDate; end: NepaliDate };
|
|
237
|
+
Q2: { start: NepaliDate; end: NepaliDate };
|
|
238
|
+
Q3: { start: NepaliDate; end: NepaliDate };
|
|
239
|
+
Q4: { start: NepaliDate; end: NepaliDate };
|
|
240
|
+
};
|
|
241
|
+
```
|
|
228
242
|
|
|
229
|
-
|
|
230
|
-
|
|
243
|
+
#### Fiscal Year Methods
|
|
244
|
+
```ts
|
|
245
|
+
static getCurrentFiscalYear(): number;
|
|
246
|
+
static getFiscalYearQuarter(quarter: number, fiscalYear?: number): { start: NepaliDate; end: NepaliDate };
|
|
247
|
+
static getFiscalYearQuarters(fiscalYear?: number): {
|
|
248
|
+
Q1: { start: NepaliDate; end: NepaliDate };
|
|
249
|
+
Q2: { start: NepaliDate; end: NepaliDate };
|
|
250
|
+
Q3: { start: NepaliDate; end: NepaliDate };
|
|
251
|
+
Q4: { start: NepaliDate; end: NepaliDate };
|
|
252
|
+
};
|
|
253
|
+
```
|
|
231
254
|
|
|
255
|
+
#### Utility Methods
|
|
232
256
|
```ts
|
|
233
|
-
|
|
257
|
+
clone(): NepaliDate; // Creates a copy of the current instance
|
|
234
258
|
```
|
|
235
259
|
|
|
236
|
-
|
|
237
|
-
- `year`: Nepali year (e.g., `2081`)
|
|
238
|
-
- `month`: Nepali month (0-11), where 0 represents the first month.
|
|
260
|
+
---
|
|
239
261
|
|
|
240
|
-
|
|
262
|
+
## Example Usage
|
|
241
263
|
|
|
264
|
+
### Basic Usage
|
|
242
265
|
```ts
|
|
243
|
-
NepaliDate
|
|
244
|
-
|
|
266
|
+
const today = new NepaliDate();
|
|
267
|
+
console.log(today.toString()); // 2081/10/15
|
|
245
268
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
Creates a copy of the current `NepaliDate` instance.
|
|
269
|
+
const formatted = today.format('YYYY-MM-DD');
|
|
270
|
+
console.log(formatted); // 2081-10-15
|
|
249
271
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
const clonedDate = date.clone();
|
|
272
|
+
const nepaliFormatted = today.format('yyyy-mm-dd');
|
|
273
|
+
console.log(nepaliFormatted); // २०८१-१०-१५
|
|
253
274
|
```
|
|
254
275
|
|
|
255
|
-
|
|
256
|
-
##### Returns
|
|
257
|
-
Checks if this date comes after the specified date.
|
|
258
|
-
|
|
276
|
+
### Date Manipulation
|
|
259
277
|
```ts
|
|
260
|
-
const date = new NepaliDate(
|
|
261
|
-
date.
|
|
278
|
+
const date = new NepaliDate(2081, 9, 15);
|
|
279
|
+
const futureDate = date.addDays(10);
|
|
280
|
+
const pastDate = date.addMonths(-2);
|
|
281
|
+
const nextYear = date.addYears(1);
|
|
262
282
|
```
|
|
263
283
|
|
|
264
|
-
|
|
265
|
-
##### Returns
|
|
266
|
-
Checks if this date comes before the specified date.
|
|
267
|
-
|
|
284
|
+
### Date Comparison
|
|
268
285
|
```ts
|
|
269
|
-
const
|
|
270
|
-
|
|
271
|
-
```
|
|
286
|
+
const date1 = new NepaliDate(2081, 5, 10);
|
|
287
|
+
const date2 = new NepaliDate(2081, 5, 15);
|
|
272
288
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
289
|
+
console.log(date1.isBefore(date2)); // true
|
|
290
|
+
console.log(date1.diff(date2, 'day')); // -5
|
|
291
|
+
console.log(date1.isSame(date2, 'month')); // true
|
|
292
|
+
```
|
|
276
293
|
|
|
294
|
+
### Working with Quarters
|
|
277
295
|
```ts
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
```
|
|
296
|
+
// Get current quarter
|
|
297
|
+
const currentQuarter = new NepaliDate().getCurrentQuarter();
|
|
281
298
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
299
|
+
// Get fiscal year quarter
|
|
300
|
+
const fiscalQuarter = new NepaliDate().getCurrentFiscalYearQuarter();
|
|
301
|
+
|
|
302
|
+
// Get all quarters for a year
|
|
303
|
+
const quarters = NepaliDate.getQuarters(2081);
|
|
304
|
+
console.log(quarters.Q1); // { start: NepaliDate, end: NepaliDate }
|
|
285
305
|
|
|
306
|
+
// Get fiscal year quarters
|
|
307
|
+
const fiscalQuarters = NepaliDate.getFiscalYearQuarters(2081);
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### Calendar Generation
|
|
286
311
|
```ts
|
|
287
|
-
const
|
|
288
|
-
|
|
312
|
+
const calendarData = NepaliDate.getCalendarDays(2081, 4);
|
|
313
|
+
console.log(calendarData.currentMonth.days); // [1, 2, 3, ..., 30]
|
|
314
|
+
console.log(calendarData.prevMonth.days); // Days from previous month
|
|
289
315
|
```
|
|
290
316
|
|
|
291
|
-
|
|
317
|
+
### Date Range Operations
|
|
318
|
+
```ts
|
|
319
|
+
const date = new NepaliDate(2081, 5, 15);
|
|
292
320
|
|
|
293
|
-
|
|
321
|
+
const startOfWeek = date.startOfWeek(); // Sunday of current week
|
|
322
|
+
const endOfWeek = date.endOfWeek(); // Saturday of current week
|
|
323
|
+
const startOfMonth = date.startOfMonth(); // 1st day of current month
|
|
324
|
+
const endOfYear = date.endOfYear(); // Last day of current year
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### Validation
|
|
294
328
|
```ts
|
|
295
|
-
|
|
296
|
-
console.log(
|
|
329
|
+
// Static validation
|
|
330
|
+
console.log(NepaliDate.isValid(2081, 4, 32)); // false (day out of range)
|
|
297
331
|
|
|
298
|
-
|
|
299
|
-
|
|
332
|
+
// Instance validation
|
|
333
|
+
const date = new NepaliDate(2081, 5, 10);
|
|
334
|
+
console.log(date.isValid()); // true
|
|
335
|
+
```
|
|
300
336
|
|
|
301
|
-
|
|
302
|
-
|
|
337
|
+
### Name Utilities
|
|
338
|
+
```ts
|
|
339
|
+
// Month names
|
|
340
|
+
console.log(NepaliDate.getMonthName(0, false, false)); // "Baisakh"
|
|
341
|
+
console.log(NepaliDate.getMonthName(0, true, true)); // "बै"
|
|
303
342
|
|
|
304
|
-
|
|
305
|
-
console.log(
|
|
343
|
+
// Day names
|
|
344
|
+
console.log(NepaliDate.getDayName(0, false, true)); // "आइतबार"
|
|
345
|
+
console.log(NepaliDate.getDayName(1, true, false)); // "Mon"
|
|
306
346
|
```
|
|
307
347
|
|
|
308
|
-
|
|
309
|
-
This project was inspired by [nepali-date](https://github.com/sharingapples/nepali-date).
|
|
348
|
+
---
|
|
310
349
|
|
|
311
350
|
## Error Handling
|
|
312
|
-
- Throws an error if an invalid date format is used
|
|
313
|
-
- Throws an error if the Nepali date is out of range
|
|
351
|
+
- Throws an error if an invalid date format is used in constructor or parse method
|
|
352
|
+
- Throws an error if the Nepali date is out of the supported range
|
|
353
|
+
- Validates input parameters and throws appropriate errors for invalid values
|
|
354
|
+
|
|
355
|
+
## Supported Date Range
|
|
356
|
+
The library supports Nepali dates within a specific range. Use `NepaliDate.minimum()` and `NepaliDate.maximum()` to get the supported date boundaries.
|
|
357
|
+
|
|
358
|
+
## Acknowledgements
|
|
359
|
+
This project was inspired by [nepali-date](https://github.com/sharingapples/nepali-date).
|
|
314
360
|
|
|
315
361
|
## License
|
|
316
362
|
MIT License
|
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Q=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var k=(e,t)=>{for(var a in t)Q(e,a,{get:t[a],enumerable:!0})},L=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of $(t))!B.call(e,s)&&s!==a&&Q(e,s,{get:()=>t[s],enumerable:!(r=K(t,s))||r.enumerable});return e};var V=e=>L(Q({},"__esModule",{value:!0}),e);var tt={};k(tt,{ADtoBS:()=>R,BStoAD:()=>W,MONTH_EN:()=>p,MONTH_NP:()=>b,MONTH_SHORT_EN:()=>g,MONTH_SHORT_NP:()=>f,NEPALI_DATE_MAP:()=>n,NUMBER_NP:()=>O,NepaliDate:()=>u,WEEK_EN:()=>m,WEEK_NP:()=>c,WEEK_SHORT_EN:()=>N,WEEK_SHORT_NP:()=>w});module.exports=V(tt);var n=[{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],P=0;n.forEach(e=>{e.totalDays=e.days.reduce((t,a)=>t+a,0),P+=e.totalDays,e.daysTillNow=P});var E=new Date(1943,3,14).getTime(),m=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],N=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],c=["\u0906\u0907\u0924\u092C\u093E\u0930","\u0938\u094B\u092E\u092C\u093E\u0930","\u092E\u0902\u0917\u0932\u092C\u093E\u0930","\u092C\u0941\u0927\u092C\u093E\u0930","\u092C\u093F\u0939\u093F\u092C\u093E\u0930","\u0936\u0941\u0915\u094D\u0930\u092C\u093E\u0930","\u0936\u0928\u093F\u092C\u093E\u0930"],w=["\u0906\u0907\u0924","\u0938\u094B\u092E","\u092E\u0902\u0917\u0932","\u092C\u0941\u0927","\u092C\u093F\u0939\u093F","\u0936\u0941\u0915\u094D\u0930","\u0936\u0928\u093F"],p=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],g=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],b=["\u092C\u0948\u0936\u093E\u0916","\u091C\u0947\u0920","\u0905\u0938\u093E\u0930","\u0936\u094D\u0930\u093E\u0935\u0923","\u092D\u093E\u0926\u094D\u0930","\u0906\u0936\u094D\u0935\u093F\u0928","\u0915\u093E\u0930\u094D\u0924\u093F\u0915","\u092E\u0902\u0938\u093F\u0930","\u092A\u094C\u0937","\u092E\u093E\u0918","\u092B\u093E\u0932\u094D\u0917\u0941\u0923","\u091A\u0948\u0924\u094D\u0930"],f=["\u092C\u0948","\u091C\u0947","\u0905","\u0936\u094D\u0930\u093E","\u092D\u093E","\u0906","\u0915\u093E","\u092E\u0902","\u092A\u094C","\u092E\u093E","\u092B\u093E","\u091A\u0948"],O=["\u0966","\u0967","\u0968","\u0969","\u096A","\u096B","\u096C","\u096D","\u096E","\u096F"];function S(e){return e<10?`0${e}`:`${e}`}function h(e){let t="";for(let a=0;a<e.length;a+=1)t+=O[e.charCodeAt(a)-48];return t}function U(e){return t=>e<=2?String(t.getYear()).substring(2):e===3?String(t.getYear()).substring(1):String(t.getYear())}function j(e){return t=>e<=2?h(String(t.getYear()).substring(2)):h(e===3?String(t.getYear()).substring(1):String(t.getYear()))}function J(e){return t=>e===1?String(t.getMonth()+1):e===2?S(t.getMonth()+1):e===3?g[t.getMonth()]:p[t.getMonth()]}function G(e){return t=>e===1?h(String(t.getMonth()+1)):e===2?h(S(t.getMonth()+1)):e===3?f[t.getMonth()]:b[t.getMonth()]}function X(e){return t=>e===1?String(t.getDate()):e===2?S(t.getDate()):e===3?N[t.getDay()]:m[t.getDay()]}function Z(e){return t=>e===1?h(String(t.getDate())):e===2?h(S(t.getDate())):e===3?w[t.getDay()]:c[t.getDay()]}function A(e){return()=>e}var v={Y:U,y:j,M:J,m:G,D:X,d:Z};function q(e){return e in v}function z(e){let t=!1,a="",r="",s=0,i=[];for(let o=0;o<e.length;o+=1){let y=e[o];if(y===r){s+=1;continue}if(r!==""&&(i.push(v[r](s)),r="",s=0),y==='"'){t=!t;continue}!q(y)||t?a+=y:(a&&(i.push(A(a)),a=""),r=y,s=1)}return a?i.push(A(a)):r&&i.push(v[r](s)),i}function F(e,t){return z(t).map(a=>a(e)).join("")}function _(e){let t=e.split(/[-./]/,3),[a,r=1,s=1]=t.map(o=>{let y=parseInt(o,10);if(Number.isNaN(y))throw new Error("Invalid date");return y});if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Nepal year out of range");if(r<1||r>12)throw new Error("Invalid nepali month must be between 1 - 12");let i=n[a-n[0].year].days[r-1];if(s<1||s>i)throw new Error(`Invalid nepali date must be between 1 - ${i} in ${a} ${r}`);return[a,r-1,s]}var u=class e{timestamp;year;month;day;constructor(...t){if(t.length===0)this.setEnglishDate(new Date);else if(t.length===1){let a=t[0];if(typeof a=="object")if(a instanceof Date)this.setEnglishDate(a);else if(a instanceof e)this.timestamp=a.timestamp,this.year=a.year,this.month=a.month,this.day=a.day;else throw new Error("Invalid date argument");else if(typeof a=="string")this.set(..._(a));else if(typeof a=="number")this.setEnglishDate(new Date(a));else throw new Error("Invalid date argument")}else if(t.length===3)this.set(t[0],t[1],t[2]);else throw new Error("Invalid argument syntax")}setEnglishDate(t){this.timestamp=t;let a=Math.floor((this.timestamp.getTime()-E)/864e5),r=Math.floor(a/366);for(;a>=n[r].daysTillNow;)r+=1;let s=n[r-1]?n[r-1].daysTillNow:0;a-=s;let i=n[r];for(this.year=i.year,this.month=0;a>=i.days[this.month];)this.month+=1,a-=i.days[this.month-1];this.day=a+1}getEnglishDate(){return this.timestamp}parse(t){this.set(..._(t))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(t){this.set(t,this.month,this.day)}setMonth(t){this.set(this.year,t,this.day)}setDate(t){this.set(this.year,this.month,t)}set(t,a,r){let s=t+Math.floor(a/12)-n[0].year,i=n[s],o=i.daysTillNow-i.totalDays,y=a%12,l=y<0?12+y:y;for(let D=0;D<l;D+=1)o+=i.days[D];o+=r-1,this.setEnglishDate(new Date(E+o*864e5))}format(t){return F(this,t)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(t){let a=new Date(this.timestamp.getTime()+t*864e5);return new e(a)}addMonths(t){let a=this.year,r=this.month+t;a+=Math.floor(r/12),r=r%12,r<0&&(r+=12,a-=1);let s=a-n[0].year;if(s<0||s>=n.length)throw new Error("Resulting date is out of supported range");let i=n[s].days[r],o=Math.min(this.day,i);return new e(a,r,o)}addYears(t){let a=this.year+t;if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Resulting date is out of supported range");let r=a-n[0].year;if(this.month===11&&this.day===29){let s=n[r].days[11];if(s<29)return new e(a,11,s)}return new e(a,this.month,this.day)}static minimum(){return new Date(E)}static maximum(){return new Date(E+n[n.length-1].daysTillNow*864e5)}daysInMonth(){let t=this.year-n[0].year;return n[t].days[this.month]}isLeapYear(){let t=this.year-n[0].year;return n[t].totalDays===366}getWeeksInMonth(){let a=new e(this.year,this.month,1).getDay(),r=this.daysInMonth();return Math.ceil((a+r)/7)}diff(t,a){switch(a){case"day":return Math.floor((this.timestamp.getTime()-t.timestamp.getTime())/864e5);case"month":let r=this.year-t.year,s=this.month-t.month;return r*12+s;case"year":return this.year-t.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){let t=new Date(this.timestamp);return t.setHours(0,0,0,0),new e(t)}endOfDay(){let t=new Date(this.timestamp);return t.setHours(23,59,59,999),new e(t)}startOfWeek(t=0){if(t<0||t>6||!Number.isInteger(t))throw new Error("startOfWeek must be an integer between 0 and 6");let r=(this.getDay()-t+7)%7;return this.clone().startOfDay().addDays(-r)}endOfWeek(t=0){return this.startOfWeek(t).addDays(6).endOfDay()}startOfMonth(){return new e(this.year,this.month,1)}endOfMonth(){let t=this.daysInMonth();return new e(this.year,this.month,t).endOfDay()}startOfYear(){return new e(this.year,0,1)}endOfYear(){let t=this.year-n[0].year,a=n[t].days[11];return new e(this.year,11,a).endOfDay()}static getMonthName(t,a=!1,r=!1){if(t<0||t>11)throw new Error("Invalid month index, must be between 0-11");let s="";return r?s=a?f[t]:b[t]:s=a?g[t]:p[t],s}static getDayName(t,a=!1,r=!1){if(t<0||t>6)throw new Error("Invalid day index, must be between 0-6");let s="";return r?s=a?w[t]:c[t]:s=a?N[t]:m[t],s}static isValid(t,a,r){try{if(t<n[0].year||t>=n[0].year+n.length||a<0||a>11)return!1;let s=t-n[0].year,i=n[s].days[a];return!(r<1||r>i)}catch{return!1}}isValid(){return e.isValid(this.year,this.month,this.day)}static getCalendarDays(t,a){if(!e.isValid(t,a,1))throw new Error("Invalid year or month");let r={year:0,month:0,days:[]},s={year:0,month:0,days:[]},i={year:0,month:0,days:[]},o=t-n[0].year,l=new e(t,a,1).getDay(),D=n[o].days[a];s.year=t,s.month=a;let M=a-1,T=t,I=a+1,Y=t;if(M<0&&(M=11,T--),T>n[0].year&&(r.year=T,r.month=M),T>=n[0].year&&l>0){let d=T-n[0].year,C=n[d].days[M];for(let H=0;H<l;H++)r.days.push(C-l+H+1)}for(let d=1;d<=D;d++)s.days.push(d);I>11&&(I=0,Y++),Y<n[0].year+n.length&&(i.year=Y,i.month=I);let x=42-l-s.days.length;if(Y<n[0].year+n.length&&x>0)for(let d=1;d<=x;d++)i.days.push(d);return{prevRemainingDays:l,prevMonth:r,currentMonth:s,nextMonth:i,remainingDays:x}}clone(){return new e(this)}isAfter(t){return this.timestamp.getTime()>t.timestamp.getTime()}isBefore(t){return this.timestamp.getTime()<t.timestamp.getTime()}isEqual(t){return this.year===t.year&&this.month===t.month&&this.day===t.day}isSame(t,a){switch(a){case"year":return this.year===t.year;case"month":return this.year===t.year&&this.month===t.month;case"day":return this.isEqual(t);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??new e().getYear(),s=(t-1)*3,i=new e(r,s,1),o=new e(r,s+2,1).endOfMonth();return{start:i,end:o}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){let a=t??new e().getYear();return{Q1:e.getQuarter(1,a),Q2:e.getQuarter(2,a),Q3:e.getQuarter(3,a),Q4:e.getQuarter(4,a)}}static getCurrentFiscalYear(){let t=new e,a=t.getYear();return t.getMonth()<3?a-1:a}static getFiscalYearQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??e.getCurrentFiscalYear(),s=r,i=(t-1)*3+3;t===4&&(s=r+1,i=0),i>11&&(s++,i-=12);let o=i+2,y=s;o>11&&(y++,o-=12);let l=new e(s,i,1),D=new e(y,o,1).endOfMonth();return{start:l,end:D}}getCurrentFiscalYearQuarter(){let t=this.getMonth();return t>=3&&t<=5?1:t>=6&&t<=8?2:t>=9&&t<=11?3:4}getCurrentFiscalYearQuarterDates(){let t=this.getCurrentFiscalYearQuarter(),a=e.getCurrentFiscalYear();return e.getFiscalYearQuarter(t,a)}static getFiscalYearQuarters(t){let a=t??e.getCurrentFiscalYear();return{Q1:e.getFiscalYearQuarter(1,a),Q2:e.getFiscalYearQuarter(2,a),Q3:e.getFiscalYearQuarter(3,a),Q4:e.getFiscalYearQuarter(4,a)}}};var R=e=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=new Date(e);if(Number.isNaN(t.getTime()))throw new Error(`Invalid date input '${e}'`);try{return new u(t).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function W(e){try{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=e?new u(e):new u,a=s=>s<10?`0${s}`:`${s}`,r=t.getEnglishDate();return`${r.getFullYear()}-${a(r.getMonth()+1)}-${a(r.getDate())}`}catch(t){throw console.error("Error During Date Conversion : ",t),new Error("Failed to convert BS to AD")}}0&&(module.exports={ADtoBS,BStoAD,MONTH_EN,MONTH_NP,MONTH_SHORT_EN,MONTH_SHORT_NP,NEPALI_DATE_MAP,NUMBER_NP,NepaliDate,WEEK_EN,WEEK_NP,WEEK_SHORT_EN,WEEK_SHORT_NP});
|
|
1
|
+
"use strict";var Q=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var k=(e,t)=>{for(var a in t)Q(e,a,{get:t[a],enumerable:!0})},L=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of $(t))!B.call(e,s)&&s!==a&&Q(e,s,{get:()=>t[s],enumerable:!(r=K(t,s))||r.enumerable});return e};var V=e=>L(Q({},"__esModule",{value:!0}),e);var tt={};k(tt,{ADtoBS:()=>R,BStoAD:()=>W,MONTH_EN:()=>p,MONTH_NP:()=>b,MONTH_SHORT_EN:()=>g,MONTH_SHORT_NP:()=>f,NEPALI_DATE_MAP:()=>n,NUMBER_NP:()=>O,NepaliDate:()=>u,WEEK_EN:()=>m,WEEK_NP:()=>c,WEEK_SHORT_EN:()=>N,WEEK_SHORT_NP:()=>w});module.exports=V(tt);var n=[{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,31,32,31,31,30,30,30,29,30,30,30],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],P=0;n.forEach(e=>{e.totalDays=e.days.reduce((t,a)=>t+a,0),P+=e.totalDays,e.daysTillNow=P});var E=new Date(1943,3,14).getTime(),m=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],N=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],c=["\u0906\u0907\u0924\u092C\u093E\u0930","\u0938\u094B\u092E\u092C\u093E\u0930","\u092E\u0902\u0917\u0932\u092C\u093E\u0930","\u092C\u0941\u0927\u092C\u093E\u0930","\u092C\u093F\u0939\u093F\u092C\u093E\u0930","\u0936\u0941\u0915\u094D\u0930\u092C\u093E\u0930","\u0936\u0928\u093F\u092C\u093E\u0930"],w=["\u0906\u0907\u0924","\u0938\u094B\u092E","\u092E\u0902\u0917\u0932","\u092C\u0941\u0927","\u092C\u093F\u0939\u093F","\u0936\u0941\u0915\u094D\u0930","\u0936\u0928\u093F"],p=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],g=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],b=["\u092C\u0948\u0936\u093E\u0916","\u091C\u0947\u0920","\u0905\u0938\u093E\u0930","\u0936\u094D\u0930\u093E\u0935\u0923","\u092D\u093E\u0926\u094D\u0930","\u0906\u0936\u094D\u0935\u093F\u0928","\u0915\u093E\u0930\u094D\u0924\u093F\u0915","\u092E\u0902\u0938\u093F\u0930","\u092A\u094C\u0937","\u092E\u093E\u0918","\u092B\u093E\u0932\u094D\u0917\u0941\u0923","\u091A\u0948\u0924\u094D\u0930"],f=["\u092C\u0948","\u091C\u0947","\u0905","\u0936\u094D\u0930\u093E","\u092D\u093E","\u0906","\u0915\u093E","\u092E\u0902","\u092A\u094C","\u092E\u093E","\u092B\u093E","\u091A\u0948"],O=["\u0966","\u0967","\u0968","\u0969","\u096A","\u096B","\u096C","\u096D","\u096E","\u096F"];function S(e){return e<10?`0${e}`:`${e}`}function h(e){let t="";for(let a=0;a<e.length;a+=1)t+=O[e.charCodeAt(a)-48];return t}function U(e){return t=>e<=2?String(t.getYear()).substring(2):e===3?String(t.getYear()).substring(1):String(t.getYear())}function j(e){return t=>e<=2?h(String(t.getYear()).substring(2)):h(e===3?String(t.getYear()).substring(1):String(t.getYear()))}function J(e){return t=>e===1?String(t.getMonth()+1):e===2?S(t.getMonth()+1):e===3?g[t.getMonth()]:p[t.getMonth()]}function G(e){return t=>e===1?h(String(t.getMonth()+1)):e===2?h(S(t.getMonth()+1)):e===3?f[t.getMonth()]:b[t.getMonth()]}function X(e){return t=>e===1?String(t.getDate()):e===2?S(t.getDate()):e===3?N[t.getDay()]:m[t.getDay()]}function Z(e){return t=>e===1?h(String(t.getDate())):e===2?h(S(t.getDate())):e===3?w[t.getDay()]:c[t.getDay()]}function A(e){return()=>e}var v={Y:U,y:j,M:J,m:G,D:X,d:Z};function q(e){return e in v}function z(e){let t=!1,a="",r="",s=0,i=[];for(let o=0;o<e.length;o+=1){let y=e[o];if(y===r){s+=1;continue}if(r!==""&&(i.push(v[r](s)),r="",s=0),y==='"'){t=!t;continue}!q(y)||t?a+=y:(a&&(i.push(A(a)),a=""),r=y,s=1)}return a?i.push(A(a)):r&&i.push(v[r](s)),i}function F(e,t){return z(t).map(a=>a(e)).join("")}function _(e){let t=e.split(/[-./]/,3),[a,r=1,s=1]=t.map(o=>{let y=parseInt(o,10);if(Number.isNaN(y))throw new Error("Invalid date");return y});if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Nepal year out of range");if(r<1||r>12)throw new Error("Invalid nepali month must be between 1 - 12");let i=n[a-n[0].year].days[r-1];if(s<1||s>i)throw new Error(`Invalid nepali date must be between 1 - ${i} in ${a} ${r}`);return[a,r-1,s]}var u=class e{constructor(...t){if(t.length===0)this.setEnglishDate(new Date);else if(t.length===1){let a=t[0];if(typeof a=="object")if(a instanceof Date)this.setEnglishDate(a);else if(a instanceof e)this.timestamp=a.timestamp,this.year=a.year,this.month=a.month,this.day=a.day;else throw new Error("Invalid date argument");else if(typeof a=="string")this.set(..._(a));else if(typeof a=="number")this.setEnglishDate(new Date(a));else throw new Error("Invalid date argument")}else if(t.length===3)this.set(t[0],t[1],t[2]);else throw new Error("Invalid argument syntax")}setEnglishDate(t){this.timestamp=t;let a=Math.floor((this.timestamp.getTime()-E)/864e5),r=Math.floor(a/366);for(;a>=n[r].daysTillNow;)r+=1;let s=n[r-1]?n[r-1].daysTillNow:0;a-=s;let i=n[r];for(this.year=i.year,this.month=0;a>=i.days[this.month];)this.month+=1,a-=i.days[this.month-1];this.day=a+1}getEnglishDate(){return this.timestamp}parse(t){this.set(..._(t))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(t){this.set(t,this.month,this.day)}setMonth(t){this.set(this.year,t,this.day)}setDate(t){this.set(this.year,this.month,t)}set(t,a,r){let s=t+Math.floor(a/12)-n[0].year,i=n[s],o=i.daysTillNow-i.totalDays,y=a%12,l=y<0?12+y:y;for(let D=0;D<l;D+=1)o+=i.days[D];o+=r-1,this.setEnglishDate(new Date(E+o*864e5))}format(t){return F(this,t)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(t){let a=new Date(this.timestamp.getTime()+t*864e5);return new e(a)}addMonths(t){let a=this.year,r=this.month+t;a+=Math.floor(r/12),r=r%12,r<0&&(r+=12,a-=1);let s=a-n[0].year;if(s<0||s>=n.length)throw new Error("Resulting date is out of supported range");let i=n[s].days[r],o=Math.min(this.day,i);return new e(a,r,o)}addYears(t){let a=this.year+t;if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Resulting date is out of supported range");let r=a-n[0].year;if(this.month===11&&this.day===29){let s=n[r].days[11];if(s<29)return new e(a,11,s)}return new e(a,this.month,this.day)}static minimum(){return new Date(E)}static maximum(){return new Date(E+n[n.length-1].daysTillNow*864e5)}daysInMonth(){let t=this.year-n[0].year;return n[t].days[this.month]}isLeapYear(){let t=this.year-n[0].year;return n[t].totalDays===366}getWeeksInMonth(){let a=new e(this.year,this.month,1).getDay(),r=this.daysInMonth();return Math.ceil((a+r)/7)}diff(t,a){switch(a){case"day":return Math.floor((this.timestamp.getTime()-t.timestamp.getTime())/864e5);case"month":let r=this.year-t.year,s=this.month-t.month;return r*12+s;case"year":return this.year-t.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){let t=new Date(this.timestamp);return t.setHours(0,0,0,0),new e(t)}endOfDay(){let t=new Date(this.timestamp);return t.setHours(23,59,59,999),new e(t)}startOfWeek(t=0){if(t<0||t>6||!Number.isInteger(t))throw new Error("startOfWeek must be an integer between 0 and 6");let r=(this.getDay()-t+7)%7;return this.clone().startOfDay().addDays(-r)}endOfWeek(t=0){return this.startOfWeek(t).addDays(6).endOfDay()}startOfMonth(){return new e(this.year,this.month,1)}endOfMonth(){let t=this.daysInMonth();return new e(this.year,this.month,t).endOfDay()}startOfYear(){return new e(this.year,0,1)}endOfYear(){let t=this.year-n[0].year,a=n[t].days[11];return new e(this.year,11,a).endOfDay()}static getMonthName(t,a=!1,r=!1){if(t<0||t>11)throw new Error("Invalid month index, must be between 0-11");let s="";return r?s=a?f[t]:b[t]:s=a?g[t]:p[t],s}static getDayName(t,a=!1,r=!1){if(t<0||t>6)throw new Error("Invalid day index, must be between 0-6");let s="";return r?s=a?w[t]:c[t]:s=a?N[t]:m[t],s}static isValid(t,a,r){try{if(t<n[0].year||t>=n[0].year+n.length||a<0||a>11)return!1;let s=t-n[0].year,i=n[s].days[a];return!(r<1||r>i)}catch{return!1}}isValid(){return e.isValid(this.year,this.month,this.day)}static getCalendarDays(t,a){if(!e.isValid(t,a,1))throw new Error("Invalid year or month");let r={year:0,month:0,days:[]},s={year:0,month:0,days:[]},i={year:0,month:0,days:[]},o=t-n[0].year,l=new e(t,a,1).getDay(),D=n[o].days[a];s.year=t,s.month=a;let M=a-1,T=t,I=a+1,Y=t;if(M<0&&(M=11,T--),T>n[0].year&&(r.year=T,r.month=M),T>=n[0].year&&l>0){let d=T-n[0].year,C=n[d].days[M];for(let H=0;H<l;H++)r.days.push(C-l+H+1)}for(let d=1;d<=D;d++)s.days.push(d);I>11&&(I=0,Y++),Y<n[0].year+n.length&&(i.year=Y,i.month=I);let x=42-l-s.days.length;if(Y<n[0].year+n.length&&x>0)for(let d=1;d<=x;d++)i.days.push(d);return{prevRemainingDays:l,prevMonth:r,currentMonth:s,nextMonth:i,remainingDays:x}}clone(){return new e(this)}isAfter(t){return this.timestamp.getTime()>t.timestamp.getTime()}isBefore(t){return this.timestamp.getTime()<t.timestamp.getTime()}isEqual(t){return this.year===t.year&&this.month===t.month&&this.day===t.day}isSame(t,a){switch(a){case"year":return this.year===t.year;case"month":return this.year===t.year&&this.month===t.month;case"day":return this.isEqual(t);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??new e().getYear(),s=(t-1)*3,i=new e(r,s,1),o=new e(r,s+2,1).endOfMonth();return{start:i,end:o}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){let a=t??new e().getYear();return{Q1:e.getQuarter(1,a),Q2:e.getQuarter(2,a),Q3:e.getQuarter(3,a),Q4:e.getQuarter(4,a)}}static getCurrentFiscalYear(){let t=new e,a=t.getYear();return t.getMonth()<3?a-1:a}static getFiscalYearQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??e.getCurrentFiscalYear(),s=r,i=(t-1)*3+3;t===4&&(s=r+1,i=0),i>11&&(s++,i-=12);let o=i+2,y=s;o>11&&(y++,o-=12);let l=new e(s,i,1),D=new e(y,o,1).endOfMonth();return{start:l,end:D}}getCurrentFiscalYearQuarter(){let t=this.getMonth();return t>=3&&t<=5?1:t>=6&&t<=8?2:t>=9&&t<=11?3:4}getCurrentFiscalYearQuarterDates(){let t=this.getCurrentFiscalYearQuarter(),a=e.getCurrentFiscalYear();return e.getFiscalYearQuarter(t,a)}static getFiscalYearQuarters(t){let a=t??e.getCurrentFiscalYear();return{Q1:e.getFiscalYearQuarter(1,a),Q2:e.getFiscalYearQuarter(2,a),Q3:e.getFiscalYearQuarter(3,a),Q4:e.getFiscalYearQuarter(4,a)}}};var R=e=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=new Date(e);if(Number.isNaN(t.getTime()))throw new Error(`Invalid date input '${e}'`);try{return new u(t).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function W(e){try{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=e?new u(e):new u,a=s=>s<10?`0${s}`:`${s}`,r=t.getEnglishDate();return`${r.getFullYear()}-${a(r.getMonth()+1)}-${a(r.getDate())}`}catch(t){throw console.error("Error During Date Conversion : ",t),new Error("Failed to convert BS to AD")}}0&&(module.exports={ADtoBS,BStoAD,MONTH_EN,MONTH_NP,MONTH_SHORT_EN,MONTH_SHORT_NP,NEPALI_DATE_MAP,NUMBER_NP,NepaliDate,WEEK_EN,WEEK_NP,WEEK_SHORT_EN,WEEK_SHORT_NP});
|
package/dist/index.mjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var n=[{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],F=0;n.forEach(e=>{e.totalDays=e.days.reduce((t,a)=>t+a,0),F+=e.totalDays,e.daysTillNow=F});var N=new Date(1943,3,14).getTime(),c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],w=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],p=["\u0906\u0907\u0924\u092C\u093E\u0930","\u0938\u094B\u092E\u092C\u093E\u0930","\u092E\u0902\u0917\u0932\u092C\u093E\u0930","\u092C\u0941\u0927\u092C\u093E\u0930","\u092C\u093F\u0939\u093F\u092C\u093E\u0930","\u0936\u0941\u0915\u094D\u0930\u092C\u093E\u0930","\u0936\u0928\u093F\u092C\u093E\u0930"],g=["\u0906\u0907\u0924","\u0938\u094B\u092E","\u092E\u0902\u0917\u0932","\u092C\u0941\u0927","\u092C\u093F\u0939\u093F","\u0936\u0941\u0915\u094D\u0930","\u0936\u0928\u093F"],b=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],f=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],T=["\u092C\u0948\u0936\u093E\u0916","\u091C\u0947\u0920","\u0905\u0938\u093E\u0930","\u0936\u094D\u0930\u093E\u0935\u0923","\u092D\u093E\u0926\u094D\u0930","\u0906\u0936\u094D\u0935\u093F\u0928","\u0915\u093E\u0930\u094D\u0924\u093F\u0915","\u092E\u0902\u0938\u093F\u0930","\u092A\u094C\u0937","\u092E\u093E\u0918","\u092B\u093E\u0932\u094D\u0917\u0941\u0923","\u091A\u0948\u0924\u094D\u0930"],E=["\u092C\u0948","\u091C\u0947","\u0905","\u0936\u094D\u0930\u093E","\u092D\u093E","\u0906","\u0915\u093E","\u092E\u0902","\u092A\u094C","\u092E\u093E","\u092B\u093E","\u091A\u0948"],H=["\u0966","\u0967","\u0968","\u0969","\u096A","\u096B","\u096C","\u096D","\u096E","\u096F"];function O(e){return e<10?`0${e}`:`${e}`}function D(e){let t="";for(let a=0;a<e.length;a+=1)t+=H[e.charCodeAt(a)-48];return t}function R(e){return t=>e<=2?String(t.getYear()).substring(2):e===3?String(t.getYear()).substring(1):String(t.getYear())}function W(e){return t=>e<=2?D(String(t.getYear()).substring(2)):D(e===3?String(t.getYear()).substring(1):String(t.getYear()))}function C(e){return t=>e===1?String(t.getMonth()+1):e===2?O(t.getMonth()+1):e===3?f[t.getMonth()]:b[t.getMonth()]}function K(e){return t=>e===1?D(String(t.getMonth()+1)):e===2?D(O(t.getMonth()+1)):e===3?E[t.getMonth()]:T[t.getMonth()]}function $(e){return t=>e===1?String(t.getDate()):e===2?O(t.getDate()):e===3?w[t.getDay()]:c[t.getDay()]}function B(e){return t=>e===1?D(String(t.getDate())):e===2?D(O(t.getDate())):e===3?g[t.getDay()]:p[t.getDay()]}function P(e){return()=>e}var Q={Y:R,y:W,M:C,m:K,D:$,d:B};function k(e){return e in Q}function L(e){let t=!1,a="",r="",s=0,i=[];for(let o=0;o<e.length;o+=1){let y=e[o];if(y===r){s+=1;continue}if(r!==""&&(i.push(Q[r](s)),r="",s=0),y==='"'){t=!t;continue}!k(y)||t?a+=y:(a&&(i.push(P(a)),a=""),r=y,s=1)}return a?i.push(P(a)):r&&i.push(Q[r](s)),i}function v(e,t){return L(t).map(a=>a(e)).join("")}function A(e){let t=e.split(/[-./]/,3),[a,r=1,s=1]=t.map(o=>{let y=parseInt(o,10);if(Number.isNaN(y))throw new Error("Invalid date");return y});if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Nepal year out of range");if(r<1||r>12)throw new Error("Invalid nepali month must be between 1 - 12");let i=n[a-n[0].year].days[r-1];if(s<1||s>i)throw new Error(`Invalid nepali date must be between 1 - ${i} in ${a} ${r}`);return[a,r-1,s]}var h=class e{timestamp;year;month;day;constructor(...t){if(t.length===0)this.setEnglishDate(new Date);else if(t.length===1){let a=t[0];if(typeof a=="object")if(a instanceof Date)this.setEnglishDate(a);else if(a instanceof e)this.timestamp=a.timestamp,this.year=a.year,this.month=a.month,this.day=a.day;else throw new Error("Invalid date argument");else if(typeof a=="string")this.set(...A(a));else if(typeof a=="number")this.setEnglishDate(new Date(a));else throw new Error("Invalid date argument")}else if(t.length===3)this.set(t[0],t[1],t[2]);else throw new Error("Invalid argument syntax")}setEnglishDate(t){this.timestamp=t;let a=Math.floor((this.timestamp.getTime()-N)/864e5),r=Math.floor(a/366);for(;a>=n[r].daysTillNow;)r+=1;let s=n[r-1]?n[r-1].daysTillNow:0;a-=s;let i=n[r];for(this.year=i.year,this.month=0;a>=i.days[this.month];)this.month+=1,a-=i.days[this.month-1];this.day=a+1}getEnglishDate(){return this.timestamp}parse(t){this.set(...A(t))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(t){this.set(t,this.month,this.day)}setMonth(t){this.set(this.year,t,this.day)}setDate(t){this.set(this.year,this.month,t)}set(t,a,r){let s=t+Math.floor(a/12)-n[0].year,i=n[s],o=i.daysTillNow-i.totalDays,y=a%12,l=y<0?12+y:y;for(let u=0;u<l;u+=1)o+=i.days[u];o+=r-1,this.setEnglishDate(new Date(N+o*864e5))}format(t){return v(this,t)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(t){let a=new Date(this.timestamp.getTime()+t*864e5);return new e(a)}addMonths(t){let a=this.year,r=this.month+t;a+=Math.floor(r/12),r=r%12,r<0&&(r+=12,a-=1);let s=a-n[0].year;if(s<0||s>=n.length)throw new Error("Resulting date is out of supported range");let i=n[s].days[r],o=Math.min(this.day,i);return new e(a,r,o)}addYears(t){let a=this.year+t;if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Resulting date is out of supported range");let r=a-n[0].year;if(this.month===11&&this.day===29){let s=n[r].days[11];if(s<29)return new e(a,11,s)}return new e(a,this.month,this.day)}static minimum(){return new Date(N)}static maximum(){return new Date(N+n[n.length-1].daysTillNow*864e5)}daysInMonth(){let t=this.year-n[0].year;return n[t].days[this.month]}isLeapYear(){let t=this.year-n[0].year;return n[t].totalDays===366}getWeeksInMonth(){let a=new e(this.year,this.month,1).getDay(),r=this.daysInMonth();return Math.ceil((a+r)/7)}diff(t,a){switch(a){case"day":return Math.floor((this.timestamp.getTime()-t.timestamp.getTime())/864e5);case"month":let r=this.year-t.year,s=this.month-t.month;return r*12+s;case"year":return this.year-t.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){let t=new Date(this.timestamp);return t.setHours(0,0,0,0),new e(t)}endOfDay(){let t=new Date(this.timestamp);return t.setHours(23,59,59,999),new e(t)}startOfWeek(t=0){if(t<0||t>6||!Number.isInteger(t))throw new Error("startOfWeek must be an integer between 0 and 6");let r=(this.getDay()-t+7)%7;return this.clone().startOfDay().addDays(-r)}endOfWeek(t=0){return this.startOfWeek(t).addDays(6).endOfDay()}startOfMonth(){return new e(this.year,this.month,1)}endOfMonth(){let t=this.daysInMonth();return new e(this.year,this.month,t).endOfDay()}startOfYear(){return new e(this.year,0,1)}endOfYear(){let t=this.year-n[0].year,a=n[t].days[11];return new e(this.year,11,a).endOfDay()}static getMonthName(t,a=!1,r=!1){if(t<0||t>11)throw new Error("Invalid month index, must be between 0-11");let s="";return r?s=a?E[t]:T[t]:s=a?f[t]:b[t],s}static getDayName(t,a=!1,r=!1){if(t<0||t>6)throw new Error("Invalid day index, must be between 0-6");let s="";return r?s=a?g[t]:p[t]:s=a?w[t]:c[t],s}static isValid(t,a,r){try{if(t<n[0].year||t>=n[0].year+n.length||a<0||a>11)return!1;let s=t-n[0].year,i=n[s].days[a];return!(r<1||r>i)}catch{return!1}}isValid(){return e.isValid(this.year,this.month,this.day)}static getCalendarDays(t,a){if(!e.isValid(t,a,1))throw new Error("Invalid year or month");let r={year:0,month:0,days:[]},s={year:0,month:0,days:[]},i={year:0,month:0,days:[]},o=t-n[0].year,l=new e(t,a,1).getDay(),u=n[o].days[a];s.year=t,s.month=a;let M=a-1,m=t,S=a+1,Y=t;if(M<0&&(M=11,m--),m>n[0].year&&(r.year=m,r.month=M),m>=n[0].year&&l>0){let d=m-n[0].year,_=n[d].days[M];for(let x=0;x<l;x++)r.days.push(_-l+x+1)}for(let d=1;d<=u;d++)s.days.push(d);S>11&&(S=0,Y++),Y<n[0].year+n.length&&(i.year=Y,i.month=S);let I=42-l-s.days.length;if(Y<n[0].year+n.length&&I>0)for(let d=1;d<=I;d++)i.days.push(d);return{prevRemainingDays:l,prevMonth:r,currentMonth:s,nextMonth:i,remainingDays:I}}clone(){return new e(this)}isAfter(t){return this.timestamp.getTime()>t.timestamp.getTime()}isBefore(t){return this.timestamp.getTime()<t.timestamp.getTime()}isEqual(t){return this.year===t.year&&this.month===t.month&&this.day===t.day}isSame(t,a){switch(a){case"year":return this.year===t.year;case"month":return this.year===t.year&&this.month===t.month;case"day":return this.isEqual(t);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??new e().getYear(),s=(t-1)*3,i=new e(r,s,1),o=new e(r,s+2,1).endOfMonth();return{start:i,end:o}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){let a=t??new e().getYear();return{Q1:e.getQuarter(1,a),Q2:e.getQuarter(2,a),Q3:e.getQuarter(3,a),Q4:e.getQuarter(4,a)}}static getCurrentFiscalYear(){let t=new e,a=t.getYear();return t.getMonth()<3?a-1:a}static getFiscalYearQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??e.getCurrentFiscalYear(),s=r,i=(t-1)*3+3;t===4&&(s=r+1,i=0),i>11&&(s++,i-=12);let o=i+2,y=s;o>11&&(y++,o-=12);let l=new e(s,i,1),u=new e(y,o,1).endOfMonth();return{start:l,end:u}}getCurrentFiscalYearQuarter(){let t=this.getMonth();return t>=3&&t<=5?1:t>=6&&t<=8?2:t>=9&&t<=11?3:4}getCurrentFiscalYearQuarterDates(){let t=this.getCurrentFiscalYearQuarter(),a=e.getCurrentFiscalYear();return e.getFiscalYearQuarter(t,a)}static getFiscalYearQuarters(t){let a=t??e.getCurrentFiscalYear();return{Q1:e.getFiscalYearQuarter(1,a),Q2:e.getFiscalYearQuarter(2,a),Q3:e.getFiscalYearQuarter(3,a),Q4:e.getFiscalYearQuarter(4,a)}}};var V=e=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=new Date(e);if(Number.isNaN(t.getTime()))throw new Error(`Invalid date input '${e}'`);try{return new h(t).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function U(e){try{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=e?new h(e):new h,a=s=>s<10?`0${s}`:`${s}`,r=t.getEnglishDate();return`${r.getFullYear()}-${a(r.getMonth()+1)}-${a(r.getDate())}`}catch(t){throw console.error("Error During Date Conversion : ",t),new Error("Failed to convert BS to AD")}}export{V as ADtoBS,U as BStoAD,b as MONTH_EN,T as MONTH_NP,f as MONTH_SHORT_EN,E as MONTH_SHORT_NP,n as NEPALI_DATE_MAP,H as NUMBER_NP,h as NepaliDate,c as WEEK_EN,p as WEEK_NP,w as WEEK_SHORT_EN,g as WEEK_SHORT_NP};
|
|
1
|
+
var n=[{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,31,32,31,31,30,30,30,29,30,30,30],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],F=0;n.forEach(e=>{e.totalDays=e.days.reduce((t,a)=>t+a,0),F+=e.totalDays,e.daysTillNow=F});var N=new Date(1943,3,14).getTime(),c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],w=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],p=["\u0906\u0907\u0924\u092C\u093E\u0930","\u0938\u094B\u092E\u092C\u093E\u0930","\u092E\u0902\u0917\u0932\u092C\u093E\u0930","\u092C\u0941\u0927\u092C\u093E\u0930","\u092C\u093F\u0939\u093F\u092C\u093E\u0930","\u0936\u0941\u0915\u094D\u0930\u092C\u093E\u0930","\u0936\u0928\u093F\u092C\u093E\u0930"],g=["\u0906\u0907\u0924","\u0938\u094B\u092E","\u092E\u0902\u0917\u0932","\u092C\u0941\u0927","\u092C\u093F\u0939\u093F","\u0936\u0941\u0915\u094D\u0930","\u0936\u0928\u093F"],b=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],f=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],T=["\u092C\u0948\u0936\u093E\u0916","\u091C\u0947\u0920","\u0905\u0938\u093E\u0930","\u0936\u094D\u0930\u093E\u0935\u0923","\u092D\u093E\u0926\u094D\u0930","\u0906\u0936\u094D\u0935\u093F\u0928","\u0915\u093E\u0930\u094D\u0924\u093F\u0915","\u092E\u0902\u0938\u093F\u0930","\u092A\u094C\u0937","\u092E\u093E\u0918","\u092B\u093E\u0932\u094D\u0917\u0941\u0923","\u091A\u0948\u0924\u094D\u0930"],E=["\u092C\u0948","\u091C\u0947","\u0905","\u0936\u094D\u0930\u093E","\u092D\u093E","\u0906","\u0915\u093E","\u092E\u0902","\u092A\u094C","\u092E\u093E","\u092B\u093E","\u091A\u0948"],H=["\u0966","\u0967","\u0968","\u0969","\u096A","\u096B","\u096C","\u096D","\u096E","\u096F"];function O(e){return e<10?`0${e}`:`${e}`}function D(e){let t="";for(let a=0;a<e.length;a+=1)t+=H[e.charCodeAt(a)-48];return t}function R(e){return t=>e<=2?String(t.getYear()).substring(2):e===3?String(t.getYear()).substring(1):String(t.getYear())}function W(e){return t=>e<=2?D(String(t.getYear()).substring(2)):D(e===3?String(t.getYear()).substring(1):String(t.getYear()))}function C(e){return t=>e===1?String(t.getMonth()+1):e===2?O(t.getMonth()+1):e===3?f[t.getMonth()]:b[t.getMonth()]}function K(e){return t=>e===1?D(String(t.getMonth()+1)):e===2?D(O(t.getMonth()+1)):e===3?E[t.getMonth()]:T[t.getMonth()]}function $(e){return t=>e===1?String(t.getDate()):e===2?O(t.getDate()):e===3?w[t.getDay()]:c[t.getDay()]}function B(e){return t=>e===1?D(String(t.getDate())):e===2?D(O(t.getDate())):e===3?g[t.getDay()]:p[t.getDay()]}function P(e){return()=>e}var Q={Y:R,y:W,M:C,m:K,D:$,d:B};function k(e){return e in Q}function L(e){let t=!1,a="",r="",s=0,i=[];for(let o=0;o<e.length;o+=1){let y=e[o];if(y===r){s+=1;continue}if(r!==""&&(i.push(Q[r](s)),r="",s=0),y==='"'){t=!t;continue}!k(y)||t?a+=y:(a&&(i.push(P(a)),a=""),r=y,s=1)}return a?i.push(P(a)):r&&i.push(Q[r](s)),i}function v(e,t){return L(t).map(a=>a(e)).join("")}function A(e){let t=e.split(/[-./]/,3),[a,r=1,s=1]=t.map(o=>{let y=parseInt(o,10);if(Number.isNaN(y))throw new Error("Invalid date");return y});if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Nepal year out of range");if(r<1||r>12)throw new Error("Invalid nepali month must be between 1 - 12");let i=n[a-n[0].year].days[r-1];if(s<1||s>i)throw new Error(`Invalid nepali date must be between 1 - ${i} in ${a} ${r}`);return[a,r-1,s]}var h=class e{constructor(...t){if(t.length===0)this.setEnglishDate(new Date);else if(t.length===1){let a=t[0];if(typeof a=="object")if(a instanceof Date)this.setEnglishDate(a);else if(a instanceof e)this.timestamp=a.timestamp,this.year=a.year,this.month=a.month,this.day=a.day;else throw new Error("Invalid date argument");else if(typeof a=="string")this.set(...A(a));else if(typeof a=="number")this.setEnglishDate(new Date(a));else throw new Error("Invalid date argument")}else if(t.length===3)this.set(t[0],t[1],t[2]);else throw new Error("Invalid argument syntax")}setEnglishDate(t){this.timestamp=t;let a=Math.floor((this.timestamp.getTime()-N)/864e5),r=Math.floor(a/366);for(;a>=n[r].daysTillNow;)r+=1;let s=n[r-1]?n[r-1].daysTillNow:0;a-=s;let i=n[r];for(this.year=i.year,this.month=0;a>=i.days[this.month];)this.month+=1,a-=i.days[this.month-1];this.day=a+1}getEnglishDate(){return this.timestamp}parse(t){this.set(...A(t))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(t){this.set(t,this.month,this.day)}setMonth(t){this.set(this.year,t,this.day)}setDate(t){this.set(this.year,this.month,t)}set(t,a,r){let s=t+Math.floor(a/12)-n[0].year,i=n[s],o=i.daysTillNow-i.totalDays,y=a%12,l=y<0?12+y:y;for(let u=0;u<l;u+=1)o+=i.days[u];o+=r-1,this.setEnglishDate(new Date(N+o*864e5))}format(t){return v(this,t)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(t){let a=new Date(this.timestamp.getTime()+t*864e5);return new e(a)}addMonths(t){let a=this.year,r=this.month+t;a+=Math.floor(r/12),r=r%12,r<0&&(r+=12,a-=1);let s=a-n[0].year;if(s<0||s>=n.length)throw new Error("Resulting date is out of supported range");let i=n[s].days[r],o=Math.min(this.day,i);return new e(a,r,o)}addYears(t){let a=this.year+t;if(a<n[0].year||a>=n[0].year+n.length)throw new Error("Resulting date is out of supported range");let r=a-n[0].year;if(this.month===11&&this.day===29){let s=n[r].days[11];if(s<29)return new e(a,11,s)}return new e(a,this.month,this.day)}static minimum(){return new Date(N)}static maximum(){return new Date(N+n[n.length-1].daysTillNow*864e5)}daysInMonth(){let t=this.year-n[0].year;return n[t].days[this.month]}isLeapYear(){let t=this.year-n[0].year;return n[t].totalDays===366}getWeeksInMonth(){let a=new e(this.year,this.month,1).getDay(),r=this.daysInMonth();return Math.ceil((a+r)/7)}diff(t,a){switch(a){case"day":return Math.floor((this.timestamp.getTime()-t.timestamp.getTime())/864e5);case"month":let r=this.year-t.year,s=this.month-t.month;return r*12+s;case"year":return this.year-t.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){let t=new Date(this.timestamp);return t.setHours(0,0,0,0),new e(t)}endOfDay(){let t=new Date(this.timestamp);return t.setHours(23,59,59,999),new e(t)}startOfWeek(t=0){if(t<0||t>6||!Number.isInteger(t))throw new Error("startOfWeek must be an integer between 0 and 6");let r=(this.getDay()-t+7)%7;return this.clone().startOfDay().addDays(-r)}endOfWeek(t=0){return this.startOfWeek(t).addDays(6).endOfDay()}startOfMonth(){return new e(this.year,this.month,1)}endOfMonth(){let t=this.daysInMonth();return new e(this.year,this.month,t).endOfDay()}startOfYear(){return new e(this.year,0,1)}endOfYear(){let t=this.year-n[0].year,a=n[t].days[11];return new e(this.year,11,a).endOfDay()}static getMonthName(t,a=!1,r=!1){if(t<0||t>11)throw new Error("Invalid month index, must be between 0-11");let s="";return r?s=a?E[t]:T[t]:s=a?f[t]:b[t],s}static getDayName(t,a=!1,r=!1){if(t<0||t>6)throw new Error("Invalid day index, must be between 0-6");let s="";return r?s=a?g[t]:p[t]:s=a?w[t]:c[t],s}static isValid(t,a,r){try{if(t<n[0].year||t>=n[0].year+n.length||a<0||a>11)return!1;let s=t-n[0].year,i=n[s].days[a];return!(r<1||r>i)}catch{return!1}}isValid(){return e.isValid(this.year,this.month,this.day)}static getCalendarDays(t,a){if(!e.isValid(t,a,1))throw new Error("Invalid year or month");let r={year:0,month:0,days:[]},s={year:0,month:0,days:[]},i={year:0,month:0,days:[]},o=t-n[0].year,l=new e(t,a,1).getDay(),u=n[o].days[a];s.year=t,s.month=a;let M=a-1,m=t,S=a+1,Y=t;if(M<0&&(M=11,m--),m>n[0].year&&(r.year=m,r.month=M),m>=n[0].year&&l>0){let d=m-n[0].year,_=n[d].days[M];for(let x=0;x<l;x++)r.days.push(_-l+x+1)}for(let d=1;d<=u;d++)s.days.push(d);S>11&&(S=0,Y++),Y<n[0].year+n.length&&(i.year=Y,i.month=S);let I=42-l-s.days.length;if(Y<n[0].year+n.length&&I>0)for(let d=1;d<=I;d++)i.days.push(d);return{prevRemainingDays:l,prevMonth:r,currentMonth:s,nextMonth:i,remainingDays:I}}clone(){return new e(this)}isAfter(t){return this.timestamp.getTime()>t.timestamp.getTime()}isBefore(t){return this.timestamp.getTime()<t.timestamp.getTime()}isEqual(t){return this.year===t.year&&this.month===t.month&&this.day===t.day}isSame(t,a){switch(a){case"year":return this.year===t.year;case"month":return this.year===t.year&&this.month===t.month;case"day":return this.isEqual(t);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??new e().getYear(),s=(t-1)*3,i=new e(r,s,1),o=new e(r,s+2,1).endOfMonth();return{start:i,end:o}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){let a=t??new e().getYear();return{Q1:e.getQuarter(1,a),Q2:e.getQuarter(2,a),Q3:e.getQuarter(3,a),Q4:e.getQuarter(4,a)}}static getCurrentFiscalYear(){let t=new e,a=t.getYear();return t.getMonth()<3?a-1:a}static getFiscalYearQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");let r=a??e.getCurrentFiscalYear(),s=r,i=(t-1)*3+3;t===4&&(s=r+1,i=0),i>11&&(s++,i-=12);let o=i+2,y=s;o>11&&(y++,o-=12);let l=new e(s,i,1),u=new e(y,o,1).endOfMonth();return{start:l,end:u}}getCurrentFiscalYearQuarter(){let t=this.getMonth();return t>=3&&t<=5?1:t>=6&&t<=8?2:t>=9&&t<=11?3:4}getCurrentFiscalYearQuarterDates(){let t=this.getCurrentFiscalYearQuarter(),a=e.getCurrentFiscalYear();return e.getFiscalYearQuarter(t,a)}static getFiscalYearQuarters(t){let a=t??e.getCurrentFiscalYear();return{Q1:e.getFiscalYearQuarter(1,a),Q2:e.getFiscalYearQuarter(2,a),Q3:e.getFiscalYearQuarter(3,a),Q4:e.getFiscalYearQuarter(4,a)}}};var V=e=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=new Date(e);if(Number.isNaN(t.getTime()))throw new Error(`Invalid date input '${e}'`);try{return new h(t).format("YYYY-MM-DD")}catch(a){throw console.error("Error During Date Conversion : ",a),new Error("Failed to convert AD to BS")}};function U(e){try{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected format: YYYY-MM-DD");let t=e?new h(e):new h,a=s=>s<10?`0${s}`:`${s}`,r=t.getEnglishDate();return`${r.getFullYear()}-${a(r.getMonth()+1)}-${a(r.getDate())}`}catch(t){throw console.error("Error During Date Conversion : ",t),new Error("Failed to convert BS to AD")}}export{V as ADtoBS,U as BStoAD,b as MONTH_EN,T as MONTH_NP,f as MONTH_SHORT_EN,E as MONTH_SHORT_NP,n as NEPALI_DATE_MAP,H as NUMBER_NP,h as NepaliDate,c as WEEK_EN,p as WEEK_NP,w as WEEK_SHORT_EN,g as WEEK_SHORT_NP};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nepali-date-library",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.4",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist"
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
"types": "dist/index.d.ts",
|
|
14
14
|
"exports": {
|
|
15
15
|
"import": "./dist/index.mjs",
|
|
16
|
-
"require": "./dist/index.cjs"
|
|
17
|
-
"types": "./dist/index.d.ts"
|
|
16
|
+
"require": "./dist/index.cjs"
|
|
18
17
|
},
|
|
19
18
|
"scripts": {
|
|
20
19
|
"build": "tsc --emitDeclarationOnly && esbuild src/index.ts --bundle --platform=node --format=cjs --minify --outfile=dist/index.cjs.js && esbuild src/index.ts --bundle --platform=node --format=esm --minify --outfile=dist/index.mjs.js"
|