Git Product home page Git Product logo

maya-dates's Introduction

@drewsonne/maya-dates

Documentation Coverage

A typescript library for interacting with and modifying both the Maya Long Count (LC) and Calendar Round (CR) dates.

Quickstart

npm install [-g] @drewsonne/maya-dates
import LongCountFactory from "@drewsonne/maya-dates/lib/factory/long-count";
// Long Count from Initial Series on east side of Stele E, Quirigua
let lc = new LongCountFactory().parse('9.17.0.0.0');
console.log(`${lc.buildFullDate()}`);

This should print 13 Ajaw 18 Kumk'u 9.17. 0. 0. 0.

Instructions

Most implementations will consist of creating a fullDate, and passing it to an operation.

Date Creation

Creating a fullDate can be done either by:

  • using a factory class (LongCountFactory, CalendarRoundFactory, FullDateFactory) and calling its parse(raw_string) function, where raw_string is a LC, CR, or CR and LC combination encoded as a string. To specify missing values in a fullDate, using *. For example,
import {Wildcard, isWildcard} from "@drewsonne/maya-dates/lib/wildcard"
import LongCountFactory from "@drewsonne/maya-dates/lib/factory/long-count";
import CalendarRoundFactory from "@drewsonne/maya-dates/lib/factory/calendar-round";
import FullDateFactory from "@drewsonne/maya-dates/lib/factory/full-date";

const wildcard = new Wildcard();

const partial_lc = new LongCountFactory().parse('9.17.0.0.*');
const partial_cr = new CalendarRoundFactory().parse('13 Ajaw * Kumk\'u');
const partial_date = new FullDateFactory().parse('13 Ajaw * Kumk\'u 9.17.0.0.*');

console.log(`LC: ${isWildcard(partial_lc.kIn)}`);
console.log(`CR: ${isWildcard(partial_cr.haab.coeff)}`);
console.log(`Full Date: ${isWildcard(partial_date.lc.kIn)}`);
import {getCalendarRound} from "@drewsonne/maya-dates/lib/cr/calendar-round";
import {getHaab} from "@drewsonne/maya-dates/lib/cr/haab";
import {getTzolkin} from "@drewsonne/maya-dates/lib/cr/tzolkin";
import {getHaabMonth} from "@drewsonne/maya-dates/lib/cr/component/haabMonth";
import {getTzolkinDay} from "@drewsonne/maya-dates/lib/cr/component/tzolkinDay";
import {coefficientParser as _} from "@drewsonne/maya-dates/lib/cr/component/coefficient"

import {FullDate} from "@drewsonne/maya-dates/lib/full-date"
import {LongCount} from "@drewsonne/maya-dates/lib/lc/long-count"

const calendarRound = getCalendarRound(
    getTzolkin(_(13), getTzolkinDay('Ajaw')),
    getHaab(_(18), getHaabMonth('Kumk\'u'))
);
const lc = new LongCount(0, 0, 0, 17, 9);
const fullDate = new FullDate(calendarRound, lc);

console.log(`${lc}`);
console.log(`${calendarRound}`);
console.log(`${fullDate}`);

Operations

Once a full date object has been created, you can either add an integer to a fullDate using shift(number), or filling in missing values in wildcards. The operations namespace provides operators to expand a fullDate with a wildcard into all possible values for dates matching that wildcard pattern.

Documentation

Full documentation and reference can be found at https://drewsonne.github.io/maya-dates/.

maya-dates's People

Contributors

drewsonne avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

maya-dates's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.