From fdfa7438904a5e8f45908f0069dfcaa156020c5f Mon Sep 17 00:00:00 2001 From: Bilokon Yaroslav Date: Fri, 17 Jan 2025 18:24:10 +0200 Subject: [PATCH] make formateDate --- src/formatDate.js | 60 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/src/formatDate.js b/src/formatDate.js index 769e2766..b75e44b3 100644 --- a/src/formatDate.js +++ b/src/formatDate.js @@ -8,7 +8,65 @@ * @returns {string} */ function formatDate(date, fromFormat, toFormat) { - // write code here + const result = []; + let year = ''; + let month = ''; + let day = ''; + const spliter = fromFormat[fromFormat.length - 1]; + const joiner = toFormat[toFormat.length - 1]; + const numbers = date.split(spliter); + + for (let i = 0; i < fromFormat.length; i++) { + switch (fromFormat[i]) { + case 'YYYY': + year = numbers[i]; + break; + + case 'YY': + year = numbers[i]; + break; + + case 'MM': + month = numbers[i]; + break; + + case 'DD': + day = numbers[i]; + break; + } + } + + for (const type of toFormat) { + switch (type) { + case 'YYYY': + if (type.length > year.length) { + if (year < 30) { + year = '20' + year; + } else { + year = '19' + year; + } + } + result.push(year); + break; + + case 'YY': + if (type.length < year.length) { + year = year.slice(2); + } + result.push(year); + break; + + case 'MM': + result.push(month); + break; + + case 'DD': + result.push(day); + break; + } + } + + return result.join(joiner); } module.exports = formatDate;