-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Labels
movaicode/18Code en réponse au 18ème concours (mars 2023)Code en réponse au 18ème concours (mars 2023)
Description
Hello,
De la syntaxe à la dyslexie du dev, tout est propre et carré ! (Je suis dev Front alors c'est du JS, m'en voulez pas :( )
function craeteSigneArrayDeString(tableSigneAstorStr) {
// TODO: Trouver un improvement
var i = 12;
while(i > 0) {
tableSigneAstorStr['push']('');
i--;
}
tableSigneAstorStr[0] = 'Bélier';
tableSigneAstorStr[1]='Taureau';
tableSigneAstorStr[2] ='Gémeaux';
tableSigneAstorStr[3]='Cancer';
tableSigneAstorStr[4]='Lion';
tableSigneAstorStr[5]="Vierge";
tableSigneAstorStr[6]="Balance";
tableSigneAstorStr[7]="Scorpion";
tableSigneAstorStr[8]='Capricorne';
tableSigneAstorStr[9]="Verseau";
tableSigneAstorStr[10]="Poissons";
tableSigneAstorStr[11]="Sagittaire";
return tableSigneAstorStr;
}
/**
* Création du mapping
*/
function creatArrayDeCorrespondaceSigne(signes) {
//TODO: Utiliser une lib ?
let maxDayParMois = '31';
var maxMoisParAns = '12';
var maxAnnee = 2100;
var minAnnee = 0;
var correspondaceObject = {};
let i = 1;
while(i <= Number(maxDayParMois)) {
let dateJour = ajoutMorceauManquantDansLaDate(i, '2');
let j=1;
while(j <= Number(maxMoisParAns)) {
let dateMois = dateJour + '/' + ajoutMorceauManquantDansLaDate(j, '2');
let k=minAnnee;
while(k < maxAnnee) {
let dateAnnee = dateMois + '/' + ajoutMorceauManquantDansLaDate(k, '4');
if ((i >= 21 && j === 3) || (i<=20 && j===4)) {
correspondaceObject[dateAnnee] = signes[0];
}
if ((i >=21 && j === 4) || (i<=20 && j===5)) {
correspondaceObject[dateAnnee]= signes[1];
}
if ((i >=21 &&j===5 ) || (i<=21 && j===6)) {
correspondaceObject[dateAnnee]= signes[2];
}
if ((i >=22 &&j===6 ) || (i<=22 && j===7)) {
correspondaceObject[dateAnnee]= signes[3];
}
if ((i >=23 &&j===7 ) || (i<=22 && j===8)) {
correspondaceObject[dateAnnee]= signes[4];
}
if ((i >=23 &&j===8 ) || (i<=22 && j===9)) {
correspondaceObject[dateAnnee]= signes[5];
}
if ((i >=23 &&j===9 ) || (i<=22 && j===10)) {
correspondaceObject[dateAnnee]= signes[6];
}
if ((i >=23 &&j===10 ) || (i<=22 && j===11)) {
correspondaceObject[dateAnnee]= signes[7];
}
if ((i >=22 &&j===12 ) || (i<=20 && j===1)) {
correspondaceObject[dateAnnee]= signes[8];
}
if ((i >=21 &&j===1 ) || (i<=18 && j===2)) {
correspondaceObject[dateAnnee]= signes[9];
}
if ((i >=19 &&j===2 ) || (i<=20 && j===3)) {
correspondaceObject[dateAnnee]= signes[10];
}
if ((i >=23 &&j===11 ) || (i<=21 && j===12)) {
correspondaceObject[dateAnnee]= signes[11];
}
k++
}
j++;
}
i++;
}
return correspondaceObject;
}
/**
* Ajout des 0 pour combler la date
*/
function ajoutMorceauManquantDansLaDate(valeur, nombreChar) {
let valeurRet = valeur
if (nombreChar == '2') {
if (valeur < 10) {
valeurRet = '0'+String(valeur);
return valeurRet;
}
}
if (nombreChar == '4') {
if (valeur < 10) {
valeurRet = '000'+String(valeur);
}
if (valeur < 100) {
valeurRet = '00'+String(valeur);
}
if (valeur < 999) {
valeurRet = '0'+String(valeur);
}
return valeurRet;
}
return valeurRet
}
function getSigneParDate(date = 'DD/MM/YYYY') {
if (date == 'DD/MM/YYYY') return 'NULL'; // On regarde si la date est valide
let tableSigneAstorStr = [];
tableSigneAstorStr = craeteSigneArrayDeString(tableSigneAstorStr);
tabelCorrespondace = creatArrayDeCorrespondaceSigne(tableSigneAstorStr);
let signeRet = '';
let entriesFn = Object['entries']
entriesFn(tabelCorrespondace)['forEach'](([v, k]) => {
if (v == date) {
signeRet = k;
}
})
return signeRet
}
console.log("GET SIGNE", getSigneParDate('12/03/2023'));
Matthieu-Coddity
Metadata
Metadata
Assignees
Labels
movaicode/18Code en réponse au 18ème concours (mars 2023)Code en réponse au 18ème concours (mars 2023)