diff --git a/src/formatDate.js b/src/formatDate.js index 769e2766..7cf0120b 100644 --- a/src/formatDate.js +++ b/src/formatDate.js @@ -8,7 +8,52 @@ * @returns {string} */ function formatDate(date, fromFormat, toFormat) { - // write code here + const partsDate = date.split(fromFormat[3]); + let day = ''; + let month = ''; + let year = ''; + + for (let i = 0; i <= 3; i++) { + if (fromFormat[i] === 'DD') { + day = partsDate[i]; + } + + if (fromFormat[i] === 'MM') { + month = partsDate[i]; + } + + if (fromFormat[i] === 'YY' || fromFormat[i] === 'YYYY') { + year = partsDate[i]; + } + } + + const newPartsDate = []; + + for (let i = 0; i <= 3; i++) { + if (toFormat[i] === 'DD') { + newPartsDate[i] = day; + } + + if (toFormat[i] === 'MM') { + newPartsDate[i] = month; + } + + if (toFormat[i] === 'YY') { + newPartsDate[i] = year.length === 2 ? year : year.slice(2); + } + + if (toFormat[i] === 'YYYY') { + if (year.length === 4) { + newPartsDate[i] = year; + } else if (Number(year) < 30) { + newPartsDate[i] = '20' + year; + } else { + newPartsDate[i] = '19' + year; + } + } + } + + return newPartsDate.join(toFormat[3]); } module.exports = formatDate;