Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/asim-tahir/datility

Missing javascript Date object utilities 📅
https://github.com/asim-tahir/datility

date date-utilities date-utility date-utils datility javascript utilities utility

Last synced: about 19 hours ago
JSON representation

Missing javascript Date object utilities 📅

Awesome Lists containing this project

README

        

Datility 📅


Missing javascript Date object utilities

## Installation

```bash
npm i datility --save
```

```bash
yarn add datility
```

```bash
pnpm add datility
```

## Usage

All methods are accessible via [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) object. With this line all methods, properties and so on added to the `Date` object.

```ts
import "datility";

console.log(new Date(2022, 5, 3).addDays(1)); // => Sat Jun 04 2022 00:00:00 GMT+0300 (GMT+03:00)
```

Also, can import methods from the specified category:

```ts
import "datility";
```

#### `manipulate` category

```ts
import "datility/manipulate";
import "datility/manipulate/add";
import "datility/manipulate/subtract";
import "datility/manipulate/reference";
```

#### `comparison` category

```ts
import "datility/comparison";
```

#### `working-days` category

```ts
import "datility/working-days";
```

## Methods

### Manipulate Category

#### Add Methods

#### addDays(days: number): Date

Add day(s) to the `Date`.

```ts
new Date(2022, 6, 9).addDays(3); // => Tue Jul 12 2022 00:00:00 GMT+0300 (GMT+03:00)
```

#### addWorkingDays(days: number): Date

Add working day(s) to the `Date`.

```ts
new Date(2022, 6, 9).addWorkingDays(3); // => Wed Jul 13 2022 00:00:00 GMT+0300 (GMT+03:00)
```

#### addWeeks(months: number): Date

Add week(s) to the `Date`.

```ts
new Date(2022, 6, 9).addWeeks(3); // => Sat Jul 30 2022 00:00:00 GMT+0300 (GMT+03:00)
```

#### addMonths(months: number): Date

Add month(s) to the `Date`.

```ts
new Date(2022, 6, 9).addMonths(3); // => Sun Oct 09 2022 00:00:00 GMT+0300 (GMT+03:00)
```

#### addYears(years: number): Date

Add year(s) to the `Date`.

```ts
new Date(2022, 6, 9).addYears(3); // => Wed Jul 09 2025 00:00:00 GMT+0300 (GMT+03:00)
```


#### Subtract Methods

#### subtractDays(days: number): Date

Subtract day(s) from the `Date`.

```ts
new Date(2022, 6, 9).subtractDays(3); // => Wed Jul 06 2022 00:00:00 GMT+0300 (GMT+03:00)
```

#### subtractWorkingDays(days: number): Date

Subtract working day(s) from the `Date`.

```ts
new Date(2022, 6, 8).subtractWorkingDays(4); // => Mon Jun 27 2022 00:00:00 GMT+0300 (GMT+03:00)
```

#### subtractWeeks(months: number): Date

Subtract week(s) from the `Date`.

```ts
new Date(2022, 6, 9).subtractWeeks(3); // => Sat Jun 18 2022 00:00:00 GMT+0300 (GMT+03:00)
```

#### subtractMonths(months: number): Date

Subtract month(s) from the `Date`.

```ts
new Date(2022, 6, 9).subtractMonths(3); // => Sat Apr 09 2022 00:00:00 GMT+0300 (GMT+03:00)
```

#### subtractYears(years: number): Date

Subtract year(s) from the `Date`.

```ts
new Date(2022, 6, 9).subtractYears(3); // => Tue Jul 09 2019 00:00:00 GMT+0300 (GMT+03:00)
```


#### Reference Methods

#### clone(): Date

Clone the `Date` by value.

```ts
const date = new Date(2022, 5, 9);
console.log(date, date.clone().addDays(10)); // => Sat Jun 09 2022 00:00:00 GMT+0300 (GMT+03:00), Sat Jun 19 2022 00:00:00 GMT+0300 (GMT+03:00)
```


#### Comparison Category

#### isBefore(given: Date): boolean

Check if the `Date` is before the given `Date`.

```ts
new Date(2022, 5, 9).isBefore(new Date(2022, 5, 10)); // => true
new Date(2022, 5, 9).isBefore(new Date(2022, 5, 9)); // => false
new Date(2022, 5, 9).isBefore(new Date(2022, 5, 8)); // => false
```

#### isSame(given: Date): boolean

Check if the `Date` is the same as the given `Date`.

```ts
new Date(2022, 5, 9).isSame(new Date(2022, 5, 9)); // => true
new Date(2022, 5, 9).isSame(new Date(2022, 5, 10)); // => false
```

#### isAfter(given: Date): boolean

Check if the `Date` is after the given `Date`.

```ts
new Date(2022, 5, 9).isAfter(new Date(2022, 5, 8)); // => true
new Date(2022, 5, 9).isAfter(new Date(2022, 5, 9)); // => false
new Date(2022, 5, 9).isAfter(new Date(2022, 5, 10)); // => false
```

#### isSameOrBefore(given: Date): boolean

Check if the `Date` is the same or before the given `Date`.

```ts
new Date(2022, 5, 9).isSameOrBefore(new Date(2022, 5, 10)); // => true
new Date(2022, 5, 9).isSameOrBefore(new Date(2022, 5, 10)); // => true
new Date(2022, 5, 9).isSameOrBefore(new Date(2022, 5, 8)); // => false
```

#### isSameOrAfter(given: Date): boolean

Check if the `Date` is the same or after the given `Date`.

```ts
new Date(2022, 5, 9).isSameOrAfter(new Date(2022, 5, 8)); // => true
new Date(2022, 5, 9).isSameOrAfter(new Date(2022, 5, 9)); // => true
new Date(2022, 5, 9).isSameOrAfter(new Date(2022, 5, 10)); // => false
```

#### isBetween(start: Date, end: Date): boolean

Check if the `Date` is between the given `start` and `end` `Date`.

```ts
new Date(2022, 5, 9).isBetween(new Date(2022, 5, 8), new Date(2022, 5, 10)); // => true
new Date(2022, 5, 9).isBetween(new Date(2022, 5, 8), new Date(2022, 5, 9)); // => false
new Date(2022, 5, 9).isBetween(new Date(2022, 5, 8), new Date(2022, 5, 8)); // => false
```

#### isPast(given: Date): boolean

Check if the `Date` is past the given `Date`.

```ts
new Date(2022, 5, 9).isPast(new Date(2022, 5, 10)); // => false
new Date(2022, 5, 9).isPast(new Date(2022, 5, 9)); // => false
new Date(2022, 5, 9).isPast(new Date(2022, 5, 8)); // => true
```

#### isFuture(given: Date): boolean

Check if the `Date` is future the given `Date`.

```ts
new Date(2022, 5, 9).isFuture(new Date(2022, 5, 10)); // => true
new Date(2022, 5, 9).isFuture(new Date(2022, 5, 9)); // => false
new Date(2022, 5, 9).isFuture(new Date(2022, 5, 8)); // => false
```

#### isDay(dayName: DayName): boolean

Check if the `Date` is the given `dayName`.

```ts
new Date(2022, 5, 5).isDay("Sunday"); // => true
new Date(2022, 5, 6).isDay("monday"); // => true
new Date(2022, 5, 7).isDay("Tue"); // => true
new Date(2022, 5, 8).isDay("wed"); // => true
new Date(2022, 5, 9).isDay("Saturday"); // => false
```


#### Working Days Category

#### isWorkingDay(): boolean

Check if the `Date` is a working day.

```ts
new Date(2022, 5, 5).isWorkingDay(); // => false
new Date(2022, 5, 6).isWorkingDay(); // => false
new Date(2022, 5, 8).isWorkingDay(); // => true
```

#### isWeekend(): boolean

Check if the `Date` is a weekend day.

```ts
new Date(2022, 5, 5).isWeekend(); // => true
new Date(2022, 5, 6).isWeekend(); // => true
new Date(2022, 5, 8).isWeekend(); // => false
```

#### addWorkingDays(days: number): Date

Add `days` working days to the `Date`.

```ts
new Date(2022, 5, 3).addWorkingDays(1); // => Sat Jun 06 2022 00:00:00 GMT+0300 (GMT+03:00)
new Date(2022, 5, 3).addWorkingDays(2); // => Sun Jun 07 2022 00:00:00 GMT+0300 (GMT+03:00)
new Date(2022, 5, 3).addWorkingDays(3); // => Mon Jun 08 2022 00:00:00 GMT+0300 (GMT+03:00)
```

#### subtractWorkingDays(days: number): Date

Subtract `days` working days to the `Date`.

```ts
new Date(2022, 5, 6).subtractWorkingDays(1); // => Fri Jun 03 2022 00:00:00 GMT+0300 (GMT+03:00)
new Date(2022, 5, 6).subtractWorkingDays(2); // => Thu Jun 02 2022 00:00:00 GMT+0300 (GMT+03:00)
new Date(2022, 5, 6).subtractWorkingDays(3); // => Wed Jun 01 2022 00:00:00 GMT+0300 (GMT+03:00)
```

## License

[MIT License](LICENSE)