react-native-lunar-calendars
Version:
React Native Calendar Components with Lunar Calendar Support - Fork of react-native-calendars with Vietnamese lunar calendar functionality
49 lines (48 loc) • 1.81 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.xdateToData = xdateToData;
exports.parseDate = parseDate;
var xdate_1 = __importDefault(require("xdate"));
function padNumber(n) {
if (n < 10) {
return '0' + n;
}
return n.toString();
}
function xdateToData(xdate) {
var dateString = xdate.toString('yyyy-MM-dd');
return {
year: xdate.getFullYear(),
month: xdate.getMonth() + 1,
day: xdate.getDate(),
timestamp: new xdate_1.default(dateString, true).getTime(),
dateString: dateString
};
}
function parseDate(d) {
if (!d) {
return undefined;
}
else if (typeof d === 'object' && 'timestamp' in d && d.timestamp) { // conventional data timestamp
return new xdate_1.default(d.timestamp, true);
}
else if (d instanceof xdate_1.default) { // xdate
return new xdate_1.default(d.toString('yyyy-MM-dd'), true);
}
else if (d instanceof Date) { // javascript date
var dateString = d.getFullYear() + '-' + padNumber((d.getMonth() + 1)) + '-' + padNumber(d.getDate());
return new xdate_1.default(dateString, true);
}
else if (typeof d === 'object' && d !== null && 'year' in d && 'month' in d && 'day' in d) {
var dateData = d;
var dateString = dateData.year + '-' + padNumber(dateData.month) + '-' + padNumber(dateData.day);
return new xdate_1.default(dateString, true);
}
else if (typeof d === 'string' || typeof d === 'number') { // timestamp number or date formatted as string
return new xdate_1.default(d.toString(), true);
}
return undefined;
}