"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* @module date
*/
/**
* Returns if the year in parameter is a leap year
*
* @param {Number} year
* @return {Boolean}
*/
var isLeapYear = function isLeapYear(year) {
return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0 || year === 0;
};
exports.isLeapYear = isLeapYear;
var _daysInMonth = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
/**
* Returns the number of days in the month and year in parameters
*
* @param {Number} month from 0 to 11
* @param {Number} year
* @return {Number} 28, 29, 30 or 31
*/
var daysInMonth = function daysInMonth(month, year) {
if (month === 1) {
return exports.isLeapYear(year) ? 29 : 28;
}
return _daysInMonth[month];
};
exports.daysInMonth = daysInMonth;
/**
* Transform a date into a SQL date : YYYY-MM-DD HH:MM:SS
*
* @param {Date} date
* @param {Boolean} withHours
* @return {String} string date with format YYYY-MM-DD HH:MM:SS
*/
var toSqlDate = function toSqlDate(date, withHours) {
var day = date.getDate(),
month = date.getMonth();
var result = date.getFullYear() + "-" + (month < 9 ? "0" : "") + (month + 1) + "-" + (day < 10 ? "0" : "") + day;
if (withHours === false) {
return result;
}
var hours = date.getHours(),
minutes = date.getMinutes(),
seconds = date.getSeconds();
return result + " " + (hours < 10 ? "0" : "") + hours + (minutes < 10 ? ":0" : ":") + minutes + (seconds < 10 ? ":0" : ":") + seconds;
};
exports.toSqlDate = toSqlDate;
/**
* Transform a SQL string date into a Date
*
* @param {String} sqlDate
* @return {Date} date
*/
var parseSqlDate = function parseSqlDate(date) {
date = date.split(" ");
date[0] = date[0].split("-");
if (date.length === 2) {
date[1] = date[1].split(":");
return new Date(date[0][0], date[0][1] - 1, date[0][2], date[1][0], date[1][1], date[1][2]);
}
return new Date(date[0][0], date[0][1] - 1, date[0][2]);
};
exports.parseSqlDate = parseSqlDate;
//# sourceMappingURL=date.js.map