const moment = require('moment'); // Funzione per convertire la data in formato yyyy/MM/dd function cambiaFormatoData01(dataStringa) { return moment(dataStringa, 'DD/MM/YYYY').format('YYYY/MM/DD'); } // Funzione per convertire la data in formato dd/MM/yyyy function cambiaFormatoData02(dataStringa) { return moment(dataStringa, 'YYYY/MM/DD').format('DD/MM/YYYY'); } // Funzione per verificare il formato della data function verificaFormatoData(dataStringa) { return moment(dataStringa, 'DD/MM/YYYY', true).isValid(); } // Array per le date inserite let dateStringa = []; // Inserisco le 5 date for (let x = 0; x < 5; x++) { let flag = true; while (flag) { const input = require('readline-sync').question(`Data (dd/MM/yyyy) [${x + 1}]: `); if (verificaFormatoData(input)) { dateStringa.push(input); flag = false; } else { console.log('Formato data non valido. Riprova.'); } } } // Crea un nuovo array con le date in formato yyyy/MM/dd per ordinarle let dateStringaCopia = dateStringa.map(cambiaFormatoData01); // Ordina in modo crescente il vettore con le date nel formato yyyy/MM/dd dateStringaCopia.sort(); // Copia le date ordinate nel formato yyyy/MM/dd di nuovo nell'array dateStringa dateStringa = dateStringaCopia.map(cambiaFormatoData02); // Stampa le 5 date inserite in modo crescente dateStringa.forEach((dataStringa, index) => { console.log(`${index + 1}) ${dataStringa}`); });