// Gestione date const readlineSync = require('readline-sync'); // Per l'input da console const moment= require("moment"); let dataStringa = ""; let dataObj = null; let ddMMyyyy = null; let anno = 0; let mese = 0; let giorno = 0; // Imposto il formato della data per controllare se la data inserita è corretta const formato = /^(0[1-9]|[12][0-9]|3[01])[-\/](0[1-9]|1[012])[-\/](19|20)\d\d$/; // Richiesta di input dataStringa = readlineSync.question("Data (dd/MM/yyyy): "); // Controllo se la data è corretta confrontandola con il formato atteso while (!formato.test(dataStringa)) { console.log("Errore: inserire la data nel formato dd/MM/yyyy ex. 01/01/1900"); dataStringa = readlineSync.question("Data (dd/MM/yyyy): "); } // Estraggo dalla data di tipo stringa l'anno, il mese e il giorno ddMMyyyy = dataStringa.split("/"); giorno = parseInt(ddMMyyyy[0], 10); mese = parseInt(ddMMyyyy[1], 10); anno = parseInt(ddMMyyyy[2], 10); console.log(`Data stringa -> giorno: ${giorno} mese: ${mese} anno: ${anno}`); // Creo un oggetto data usando moment.js dataObj = moment(`${anno}-${mese}-${giorno}`, 'YYYY-MM-DD'); // Estraggo dalla data di tipo oggetto l'anno, il mese e il giorno giorno = dataObj.date(); mese = dataObj.month() + 1; // moment.js usa mesi da 0 a 11 anno = dataObj.year(); console.log(`Data oggetto -> giorno: ${giorno} mese: ${mese} anno: ${anno}`); console.log("--- Formati data ---"); console.log(`1) MM-dd-yyyy: ${dataObj.format('MM-DD-YYYY')}`); console.log(`2) yyyy-MM-dd: ${dataObj.format('YYYY-MM-DD')}`); console.log(`3) dd-MM-yyyy: ${dataObj.format('DD-MM-YYYY')}`);