diff --git a/src/formatDate.js b/src/formatDate.js index 769e2766..5db84324 100644 --- a/src/formatDate.js +++ b/src/formatDate.js @@ -8,7 +8,34 @@ * @returns {string} */ function formatDate(date, fromFormat, toFormat) { - // write code here + const fromFormatCopy = [...fromFormat]; + const toFormatCopy = [...toFormat]; + + const separator = fromFormatCopy.pop(); + const parts = date.split(separator); + + const dateParts = {}; + + fromFormatCopy.forEach((part, index) => { + dateParts[part] = parts[index]; + }); + + if (toFormatCopy.includes('YY') && dateParts['YYYY']) { + dateParts['YY'] = dateParts['YYYY'].slice(-2); + } + + if (toFormatCopy.includes('YYYY') && dateParts['YY']) { + dateParts['YYYY'] = + dateParts['YY'] < '30' ? '20' + dateParts['YY'] : '19' + dateParts['YY']; + } + + const newSeparator = toFormatCopy.pop(); + + const newDate = toFormatCopy + .map((part) => dateParts[part]) + .join(newSeparator); + + return newDate; } module.exports = formatDate;