react-native-calendar-box
Version:
react-native calendar picker with box
96 lines (81 loc) • 2.84 kB
JavaScript
;
exports.__esModule = true;
exports.getCalendarArray = getCalendarArray;
exports.getMonthName = getMonthName;
exports.getDayName = getDayName;
exports.setDisplayTime = setDisplayTime;
exports.displayDateTime = displayDateTime;
exports.getHoursList = getHoursList;
var _immutableDatetime = require('immutable-datetime');
var _immutableDatetime2 = _interopRequireDefault(_immutableDatetime);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* Calendar helpers */
var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
function getEmptyWeekArray() {
var array = new Array(7);
array.fill(null);
return array;
}
function getCalendarArray(year, month) {
var weeks = [];
var firstDay = _immutableDatetime2.default.fromDateParts(year, month, 1);
var firstDayOfNextMonth = _immutableDatetime2.default.fromDateParts(year, month + 1, 1);
var currentWeek = getEmptyWeekArray();
var currentWeekIsEmpty = true;
var currentDay = firstDay;
while (currentDay.toNumber() < firstDayOfNextMonth.toNumber()) {
var dayOfWeek = currentDay.getDay();
currentWeek[dayOfWeek] = currentDay;
currentWeekIsEmpty = false;
if (dayOfWeek === 6) {
weeks.push(currentWeek);
currentWeek = getEmptyWeekArray();
currentWeekIsEmpty = true;
}
currentDay = currentDay.addDays(1);
}
if (!currentWeekIsEmpty) {
weeks.push(currentWeek);
}
return weeks;
}
function getMonthName(currentMonth) {
return monthNames[currentMonth];
}
function getDayName(dayIndex) {
return dayNames[dayIndex];
}
function setDisplayTime(dateTime) {
var time = dateTime;
var minutes = time.getMinutes() < 10 ? '0' + time.getMinutes() : time.getMinutes();
var hours = time.getHours() < 10 ? '0' + time.getHours() : time.getHours();
return hours + '.' + minutes;
}
function displayDateTime(dateTime) {
if (dateTime != null) {
var month = getMonthName(dateTime.getMonth());
var time = displayTime(dateTime);
return month + ' ' + dateTime.getDate() + ', ' + dateTime.getYear() + ' at ' + time;
}
return '';
}
function displayTime(dateTime) {
if (dateTime != null) {
var time = dateTime;
var minutes = time.getMinutes() < 10 ? '0' + time.getMinutes() : time.getMinutes();
var hours = time.getHours() < 10 ? '0' + time.getHours() : time.getHours();
return hours + ':' + minutes;
}
return '';
}
function getHoursList(date) {
var hoursList = [];
if (date != null) {
for (var i = 7; i < 19; i += 1) {
hoursList.push(date.addHours(i));
hoursList.push(date.addHours(i).addMinutes(30));
}
}
return hoursList;
}