diff --git a/src/formatDate.js b/src/formatDate.js index 769e2766..63d89e5c 100644 --- a/src/formatDate.js +++ b/src/formatDate.js @@ -8,7 +8,32 @@ * @returns {string} */ function formatDate(date, fromFormat, toFormat) { - // write code here + const separator = fromFormat.find((part) => part.length === 1); + const dateParts = date.split(separator); + const dateMap = {}; + + fromFormat.forEach((part, index) => { + if (part !== separator) { + dateMap[part] = dateParts[index]; + } + }); + + if (dateMap['YYYY']) { + dateMap['YY'] = dateMap['YYYY'].slice(2); + } else if (dateMap['YY']) { + const year = parseInt(dateMap['YY'], 10); + + dateMap['YYYY'] = year < 30 ? '20' + dateMap['YY'] : '19' + dateMap['YY']; + } + + // 4. Reorganizar e formatar a data no novo formato + const newSeparator = toFormat.find((part) => part.length === 1); + const formattedDate = toFormat + .filter((part) => part !== newSeparator) + .map((part) => dateMap[part]) + .join(newSeparator); + + return formattedDate; } module.exports = formatDate;