Skip to content

Commit

Permalink
add toArray function as version 1.5.0 990724
Browse files Browse the repository at this point in the history
  • Loading branch information
alireza-ab committed Oct 15, 2020
1 parent 8fb1679 commit ae5229c
Show file tree
Hide file tree
Showing 8 changed files with 260 additions and 139 deletions.
21 changes: 20 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,21 @@
.DS_Store
node_modules
test

# local env files
.env.local
.env.*.local

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,15 @@ persianDate.toObject("YYYY-MM-DD"); // { year: 2021, month:'03', date:21, hour:0
persianDate.toObject(["YYYY", "MM", "DD"]); // { year: 2021, month:'03', date:21, hour:0, minute:0, second:0, millisecond:0 }
```

### toArray()

```javascript
persianDate.parse("1400/1/1");
persianDate.toArray(); // [1400, 1, 1, 0, 0, 0, 0]
persianDate.toArray("YYYY-MM-DD"); // [2021, '03', 21, 0, 0, 0, 0]
persianDate.toArray(["YYYY", "MM", "DD"]); // [2021, '03', 21, 0, 0, 0, 0]
```

## Query

### isLeapYear()
Expand Down
2 changes: 1 addition & 1 deletion dist/PersianDate.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/PersianDate.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/PersianDate.min.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@alireza-ab/persian-date",
"version": "1.4.0",
"version": "1.5.0",
"description": "A lightweight but professional library for working with Persian dates",
"main": "./dist/PersianDate.min.js",
"scripts": {
Expand Down
294 changes: 161 additions & 133 deletions src/PersianDate.js

Large diffs are not rendered by default.

67 changes: 66 additions & 1 deletion test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ let persianDate = new PersianDate();
const now = {
year: 1399,
month: 7,
date: 2
date: 24
}

test('create date and return now', () => {
Expand Down Expand Up @@ -1044,4 +1044,69 @@ test('diff function', () => {
expect(persianDate.diff('1398/2/1', 'month', true)).toBeGreaterThan(-1)
persianDate.parse('1400');
expect(persianDate.diff('1399/12', 'date')).toBe(30)
});

////////////////////--- Version 1.5.0 ---////////////////////

test('toArray function without parameter', () => {
let array = persianDate.parse('1400/1/1').toArray();
expect(array[0]).toBe(persianDate.year())
expect(array[1]).toBe(persianDate.month())
expect(array[2]).toBe(persianDate.date())
expect(array[3]).toBe(persianDate.hour())
expect(array[4]).toBe(persianDate.minute())
expect(array[5]).toBe(persianDate.second())
expect(array[6]).toBe(persianDate.millisecond())
});

test('toArray function with string parameter', () => {
let array = persianDate.parse('1400/1/1').toArray('jYY-jMM');
expect(array[0]).toBe(persianDate.year('jYY'))
expect(array[1]).toBe(persianDate.month('jMM'))
expect(array[2]).toBe(persianDate.date())
expect(array[3]).toBe(persianDate.hour())
expect(array[4]).toBe(persianDate.minute())
expect(array[5]).toBe(persianDate.second())
expect(array[6]).toBe(persianDate.millisecond())
});

test('toArray function with array parameter', () => {
let array = persianDate.parse('1400/1/1').toArray(['jYY', 'jMM', 'jDD', 'kk', 'm', 'ss', 'C']);
expect(array[0]).toBe(persianDate.year('jYY'))
expect(array[1]).toBe(persianDate.month('jMM'))
expect(array[2]).toBe(persianDate.date('jDD'))
expect(array[3]).toBe(persianDate.hour('kk'))
expect(array[4]).toBe(persianDate.minute('m'))
expect(array[5]).toBe(persianDate.second('ss'))
expect(array[6]).toBe(persianDate.millisecond('C'))
});

test('toArray function with object parameter', () => {
let array = persianDate.parse('1400/1/1').toArray({
year: 'jYY',
M: 'jMM',
date: 'jDD',
hour: 'kk',
minutes: 'm',
s: 'ss',
ms: 'C'
});
expect(array[0]).toBe(persianDate.year('jYY'))
expect(array[1]).toBe(persianDate.month('jMM'))
expect(array[2]).toBe(persianDate.date('jDD'))
expect(array[3]).toBe(persianDate.hour('kk'))
expect(array[4]).toBe(persianDate.minute('m'))
expect(array[5]).toBe(persianDate.second('ss'))
expect(array[6]).toBe(persianDate.millisecond('C'))
});

test('toArray function with numeric parameter', () => {
let array = persianDate.parse('1400/1/1').toArray('jYY', 'jMM', 'jDD', 'kk', 'm', 'ss', 'C');
expect(array[0]).toBe(persianDate.year('jYY'))
expect(array[1]).toBe(persianDate.month('jMM'))
expect(array[2]).toBe(persianDate.date('jDD'))
expect(array[3]).toBe(persianDate.hour('kk'))
expect(array[4]).toBe(persianDate.minute('m'))
expect(array[5]).toBe(persianDate.second('ss'))
expect(array[6]).toBe(persianDate.millisecond('C'))
});

0 comments on commit ae5229c

Please sign in to comment.