nowk/calendr.js

View on GitHub
day/index.js

Summary

Maintainability
A
0 mins
Test Coverage
/* jshint node: true */

var parseDate = require('../utils').parseDate;
var months = require("../utils").months;
var days = require("../utils").days;

/**
 * expose
 */

module.exports = Day;

/*
 * Day object
 *
 * @param {Number} year (full year eg. 2014)
 * @param {Number} month (0 January)
 * @param {Number} date (1..31)
 * @constructor
 */

function Day(year, month, date) {
  this.moment = parseDate(new Date(year, month, date));
  this.events = [];
}

/*
 * date
 *
 * @return {Number}
 * @api public
 */

Day.prototype.date = function() {
  return this.moment.date();
};

/*
 * month returns the month (0 January)
 *
 * @return {Number}
 * @api public
 */

Day.prototype.month = function() {
  return this.moment.month();
};

/*
 * year
 *
 * @return {Number}
 * @api public
 */

Day.prototype.year = function() {
  return this.moment.year();
};

/*
 * day of the week (Monday, Tuesday, etc...)
 *
 * @return {String}
 * @api public
 */

Day.prototype.name = function() {
  return days[this.moment.day()];
};

/*
 * month name
 *
 * @return {String}
 * @api public
 */

Day.prototype.monthName = function() {
  return months[this.month()];
};

/*
 * is it today?
 *
 * @return {Boolean}
 * @api public
 */

Day.prototype.isToday = function() {
  var _now = new Date();
  _now.setHours(0, 0, 0, 0);

  var now = parseInt(_now.getTime()/100000, 10);      // milliseconds
  var thisday = parseInt(this.moment.unix()/100, 10); // seconds
  return thisday === now;
};

/**
 * getTime is akin to Date's own getTime()
 *
 * @return {Number}
 * @api public
 */

Day.prototype.getTime = function() {
  return this.moment.valueOf();
}