Security News
Opengrep Emerges as Open Source Alternative Amid Semgrep Licensing Controversy
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
calendar-base
Advanced tools
Base methods for generating calendars using JavaScript.
Output is ES5 compatible.
# using npm
npm install calendar-base
# or yarn
yarn add calendar-base
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.
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 dayweekStart
: 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
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.
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
.
FAQs
Base methods for generating calendars using JavaScript.
We found that calendar-base demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
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.
Security News
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.