Socket
Socket
Sign inDemoInstall

calendar-base

Package Overview
Dependencies
0
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    calendar-base

Base methods for generating calendars using JavaScript.


Version published
Weekly downloads
2.7K
increased by8.96%
Maintainers
1
Install size
54.6 kB
Created
Weekly downloads
 

Readme

Source

Calendar Base

Lint, Type Check, Test, Build npm version

Base methods for generating calendars using JavaScript.

Output is ES5 compatible.

Installation

# using npm
npm install calendar-base

# or yarn
yarn add calendar-base

Usage

const Calendar = require('calendar-base').Calendar;
const cal = new Calendar();

cal.getCalendar(2020, 0);
/*
Returns an Array with the calendar for January 2020, including empty spaces for
days from the previous and next months:

[
  false,
  false,
  { day: 1, weekDay: 3, month: 0, year: 2020 },
  { day: 2, weekDay: 4, month: 0, year: 2020 },
  { day: 3, weekDay: 5, month: 0, year: 2020 },
  { day: 4, weekDay: 6, month: 0, year: 2020 },
  { day: 5, weekDay: 0, month: 0, year: 2020 },
  ...
]
*/

Check an online example or browse the examples folder for some simple use cases.

Date object notation

Every returned day or date argument follows this notation:

{
  day: 14,
  month: 9,
  year: 1986,
  weekDay: 4,
  selected: false,
  siblingMonth: false,
  weekNumber: 42
}

Properties month and weekDay respect JavaScript’s Date.prototype.

Only day, month, and year are necessary as input parameters for methods that require a date.

Calendar(options)

Constructor for a new calendar generator.

The object options may have the following properties:

  • startDate: current selected starting date (default undefined)
  • endDate: current selected ending date (default undefined)
  • siblingMonths: whether to include the previous and next months’ days before and after the current month when generating a calendar (default false)
  • weekNumbers: whether to include the week number on each day
  • weekStart: day of the week, respects Date.prototype.getDay (default 0, Sunday)
Calendar.diff(dateOne, dateTwo)

Returns the difference in days between dateOne and dateTwo as a Number.

> Calendar.diff({ year: 2010, month: 0, day: 1 }, { year: 2010, month: 0, day: 10 });
-9
Calendar.interval(dateOne, dateTwo)

Returns the amount of days between dateOne and dateTwo as a Number.

> Calendar.interval({ year: 2010, month: 0, day: 1 }, { year: 2010, month: 0, day: 10 });
10
Calendar.compare(leftDate, rightDate)

Compares two date objects, returns:

  • -1 if leftDate < rightDate
  • 0 if leftDate == rightDate
  • 1 if leftDate > rightDate

Useful for quick comparisons such as sorting an array of dates.

> Calendar.compare({ year: 2010, month: 0, day: 1 }, { year: 2010, month: 0, day: 10 });
1
Calendar.daysInMonth(year, month)

Returns the amount of days in the given month as a Number.

> Calendar.daysInMonth(2010, 0);
31
Calendar.isLeapYear(year)

Returns whether the given year is a leap year, as a Boolean.

> Calendar.isLeapYear(2100);
false
Calendar.calculateWeekNumber(date)

Returns the week number for the specified date.

> Calendar.calculateWeekNumber({year: 1986, month: 9, day: 14 });
42
Calendar.prototype.getCalendar(year, month)

Returns an Array of dates with the days from the given month, always starting at the configured week day.

If sibling months is disabled, paddings are added as false to align the week days, otherwise the respective days from the previous or next months are included.

> var cal = new Calendar({ siblingMonths: true });
> cal.getCalendar(2015, 5);
[ { day: 31, weekDay: 0, month: 4, year: 2015, siblingMonth: true },
  { day: 1, weekDay: 1, month: 5, year: 2015 },
  { day: 2, weekDay: 2, month: 5, year: 2015 },
  ...
  { day: 4, weekDay: 6, month: 6, year: 2015, siblingMonth: true } ]
Calendar.prototype.setDate(date)

Alias to Calendar.prototype.setStartDate.

Calendar.prototype.setStartDate(date)

Sets the current selected starting date.

> cal.setStartDate({ year: 2015, month: 0, day: 1 });
Calendar.prototype.setEndDate(date)

Sets the current selected ending date.

> cal.setEndDate({ year: 2015, month: 0, day: 31 });
Calendar.prototype.isDateSelected(date)

Checks whether the given date is inside the selected dates interval, returns a Boolean.

> cal.isDateSelected({ year: 2015, month: 0, day: 10 });
true

Important note on week numbers

Week numbers are calculated based on the ISO 8601 standard, which assumes calculations based on weeks starting on Mondays. Be extra careful displaying the week number if your calendar doesn't start on a Monday.

Development

This library uses wes-cli, which simplifies configuration setup. Instead of using yarn install, you should use npx wes-cli install, which will create all configuration files and run yarn install.

Read more about wes-cli.

License

MIT, https://wes.dev/LICENSE.txt

Keywords

FAQs

Last updated on 21 Feb 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc