CoddityTeam / movaicode

Concours mensuel du Pire Développeur de France
123 stars 10 forks source link

Je_suis_taureau.js #278

Open shts-on-fire opened 1 year ago

shts-on-fire commented 1 year ago

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'));