New Personal Mail

    calendarize
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.1 • Public • Published

    calendarize build status codecov

    A tiny (202B) utility to generate calendar views.

    This function (optionally) accepts a date in exchange for a calendar view of that date's month.

    The output contains no labels! This is ideal for calendar generator because it allows the developer to easily customize their labels, including full i18n/internationalization support! (Demo)

    Additionally, this module is delivered as:

    Install

    $ npm install --save calendarize
    

    Usage

    via Date Instance

    import calendarize from 'calendarize';
     
    // Week = [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
    const view = calendarize(new Date('2019-12-20'));
    //=> [
    //=>   [ 1,  2,  3,  4,  5,  6,  7],
    //=>   [ 8,  9, 10, 11, 12, 13, 14],
    //=>   [15, 16, 17, 18, 19, 20, 21],
    //=>   [22, 23, 24, 25, 26, 27, 28],
    //=>   [29, 30, 31,  0,  0,  0,  0],
    //=> ]

    via Date String

    import calendarize from 'calendarize';
     
    // Week = [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
    const view = calendarize('Nov 01, 2019');
    //=> [
    //=>   [ 0,  0,  0,  0,  0,  1,  2],
    //=>   [ 3,  4,  5,  6,  7,  8,  9],
    //=>   [10, 11, 12, 13, 14, 15, 16],
    //=>   [17, 18, 19, 20, 21, 22, 23],
    //=>   [24, 25, 26, 27, 28, 29, 30],
    //=> ]

    with Weeks starting on Monday

    Note: Uses the offset parameter.

    import calendarize from 'calendarize';
     
    // Week = [Mon, Tue, Wed, Thu, Fri, Sat, Sun]
    const view = calendarize('Nov 01, 2019', 1);
    //=> [
    //=>   [ 0,  0,  0,  0,  1,  2,  3],
    //=>   [ 4,  5,  6,  7,  8,  9, 10],
    //=>   [11, 12, 13, 14, 15, 16, 17],
    //=>   [18, 19, 20, 21, 22, 23, 24],
    //=>   [25, 26, 27, 28, 29, 30,  0],
    //=> ]

    API

    calendarize(date?, offset?)

    Returns: Array<Week>

    An Array of Week Arrays is returned.

    Each Week is an Array of 7 numbers, wherein each index is the Day of the week and each value is the numerical date.
    The index is forwarded from Date.getDay, which means that index: 0 is Sunday.

    Important: A value of zero (0) represents a date that exists beyond the current month view.

    date

    Type: string | number | Date
    Default: new Date() – aka, today

    The date you want to process.

    Important: Your string|number value will be cast to a Date object, which means Node.js may apply incorrect timezone!

    offset

    Type: number
    Default: 0

    A positive or negative day offset to modify which day of the week the calendar should start.
    This offset is relative to Sunday – so, by default, an offset of 0 will mean that your Weeks will start on Sundays.

    Note: Some parts of the globe expect calendars to start on Sunday, Saturday, or Monday: see map

    Example Offsets

    • Monday: 1
    • Tuesday: 2
    • ...
    • Friday: 5 or -2
    • Saturday: 6 or -1

    If you use offset: 1, this means you want the Weeks to start on Monday. In turn, the 0th value of each Week array will be Monday's date.

    // The first week of Jan 2020:
     
    // start = Sunday (default)
    calendarize('Jan 01, 2020');
    // =>    [[0, 0, 0, 1, 2, 3, 4], ...]
    // (days: [S, M, T, W, T, F, S])
     
    // start = Monday (offset: 1)
    calendarize('Jan 01, 2020', 1);
    // =>    [[0, 0, 1, 2, 3, 4, 5], ...]
    // (days: [M, T, W, T, F, S, S])

    License

    MIT © Luke Edwards

    Install

    npm i calendarize

    DownloadsWeekly Downloads

    3,518

    Version

    1.1.1

    License

    MIT

    Unpacked Size

    7.49 kB

    Total Files

    7

    Last publish

    Collaborators

    • lukeed