const readline = require('readline'); // Funzione per convertire gradi, primi e secondi in gradi decimali function conversioneGradiDecimale(gradi, primi, secondi) { let gradiDecimali = secondi / 60; gradiDecimali = (primi + gradiDecimali) / 60; gradiDecimali = gradi + gradiDecimali; return gradiDecimali; } const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); let localita = ""; let latitudine_g = 0, latitudine_p = 0, latitudine_s = 0, latitudine_d = ""; let longitudine_g = 0, longitudine_p = 0, longitudine_s = 0, longitudine_d = ""; let emisfero = ""; let parallelo_1 = 0, parallelo_2 = 0; let meridiano_1 = 0, meridiano_2 = 0; rl.question("Nome località: ", (inputLocalita) => { localita = inputLocalita.toUpperCase(); console.log("--- LATITUDINE ---"); rl.question("Gradi: ", (latG) => { latitudine_g = parseInt(latG); rl.question("Primi: ", (latP) => { latitudine_p = parseInt(latP); rl.question("Secondi: ", (latS) => { latitudine_s = parseInt(latS); rl.question("N=Nord S=Sud: ", (latD) => { latitudine_d = latD.toUpperCase(); console.log("--- LONGITUDINE ---"); rl.question("Gradi: ", (lonG) => { longitudine_g = parseInt(lonG); rl.question("Primi: ", (lonP) => { longitudine_p = parseInt(lonP); rl.question("Secondi: ", (lonS) => { longitudine_s = parseInt(lonS); rl.question("E=Est W=Ovest: ", (lonD) => { longitudine_d = lonD.toUpperCase(); // Calcolo delle coordinate in formato decimale let latitudine_gradi = conversioneGradiDecimale(latitudine_g, latitudine_p, latitudine_s); let longitudine_gradi = conversioneGradiDecimale(longitudine_g, longitudine_p, longitudine_s); let latitudine = `${latitudine_g}° ${latitudine_p}' ${latitudine_s}" ${latitudine_d}`; let longitudine = `${longitudine_g}° ${longitudine_p}' ${longitudine_s}" ${longitudine_d}`; if (latitudine_d === "N") { emisfero = "BOREALE"; } else if (latitudine_d === "S") { emisfero = "AUSTRALE"; } else { emisfero = "ERRORE"; } parallelo_1 = Math.floor(latitudine_gradi / 15); parallelo_2 = Math.ceil(latitudine_gradi / 15); meridiano_1 = Math.floor(longitudine_gradi / 15); meridiano_2 = Math.ceil(longitudine_gradi / 15); if (longitudine_d === "W") { meridiano_1 = 24 - meridiano_1; meridiano_2 = 24 - meridiano_2; if (meridiano_1 === 24) meridiano_1 = 0; if (meridiano_2 === 24) meridiano_2 = 0; [meridiano_1, meridiano_2] = [meridiano_2, meridiano_1]; } console.log(`Località: ${localita}`); console.log(`Latitudine: ${latitudine}`); console.log(`Longitudine: ${longitudine}`); console.log(`Emisfero: ${emisfero}`); console.log(`Paralleli: tra ${parallelo_1} e ${parallelo_2}`); console.log(`Meridiano: tra ${meridiano_1} e ${meridiano_2}`); rl.close(); }); }); }); }); }); }); }); }); });