diff --git a/src/formatDate.js b/src/formatDate.js index 769e2766..991536f4 100644 --- a/src/formatDate.js +++ b/src/formatDate.js @@ -8,7 +8,38 @@ * @returns {string} */ function formatDate(date, fromFormat, toFormat) { - // write code here + const [toParts, newSeparator] = [ + toFormat.slice(0, -1), + toFormat[toFormat.length - 1], + ]; + const [fromParts, separator] = [ + fromFormat.slice(0, -1), + fromFormat[fromFormat.length - 1], + ]; + + const dateParts = date.split(separator); + const dateFrom = {}; + const dateTo = []; + + for (let i = 0; i < fromFormat.length; i++) { + dateFrom[fromParts[i]] = dateParts[i]; + } + + if (dateFrom.YYYY) { + dateFrom.YY = dateFrom.YYYY.slice(-2); + } else if (dateFrom.YY) { + if (dateFrom.YY < 30) { + dateFrom.YYYY = `20${dateFrom.YY}`; + } else { + dateFrom.YYYY = `19${dateFrom.YY}`; + } + } + + for (let i = 0; i < toParts.length; i++) { + dateTo.push(dateFrom[toParts[i]]); + } + + return dateTo.join(newSeparator); } module.exports = formatDate;