Trucsweb.com

Forum de discussion

 Forum « Programmation Javascript » (archives)

Re: Signe zodiaque selon une date

Envoyé: 17 novembre 2004, 15h32 par Oznog


Salut,

Attention a ton titre!

Bon, tu as les deux choses les plus dificile à saisir pour un nouveau, l'objet dates et les tests de conditions multiples.

Pour simplifier, je t'ai fais un objet "Signe zodiaque" qui contient toutes les information de chacun des signes facillement accèssible (aSigne[7].pierre par exemple).

function twSigne(sNom,nMdeb,nJdeb,nMfin,nJfin,sElement,sType,sSexe,sPlanete,sCouleur,sPierre,sMetal,sCaractere,sPartenaires,sAffinites,sCelebres,sDiscordance) {
// Script gratuit des Trucsweb.com
// Objet Signe Zodiaque
this.nom = sNom;
// Important
this.mDeb = nMdeb;
this.jDeb = nJdeb;
this.mFin = nMfin;
this.jFin = nJfin;
// Un petit plus
this.element = sElement;
this.type = sType;
this.sexe = sSexe;
this.planete = sPlanete;
this.couleur = sCouleur;
this.pierre = sPierre;
this.metal = sMetal;
this.caractere = sCaractere;
this.partenaires = sPartenaires;
this.affinites = sAffinites;
this.celebres = sCelebres;
this.discordance = sDiscordance;
}

// Construction des objets "Signe Zodiaque"
aSigne = new Array(11)
aSigne[0] = new twSigne("Capricorne",12,21,1,19,"terre","Cardinal","f","Saturne","Orange","Ambre","Nickel","Discipliné, persévérant, ambitieux, calme, effacé, maître","Sagittaire","Vierge, Scorpion","Pasteur, Cézanne, Matisse, Puccini","");
aSigne[1] = new twSigne("Verseau",1,20,2,19,"air","Fixe","m","Uranus","Violet","Perle noire","Plomb","Idéaliste, sociable, sentimental, humaniste","Lion ou Sagittaire","Balance, Bélier","Casanova, Mozart, Manet, Valéry Giscard d'Estaing","");
aSigne[2] = new twSigne("Poissons",2,20,3,20,"eau","Mutable","f","Neptune","Bleu","Aigue-marine","Etain","Vulnérable, contradictoire, dévoué, mystérieux","Bélier","Taureau, Sagittaire","Michel-Ange, Chopin, Albert Einstein, Stéphane Mallarmé","Gémeaux");
aSigne[3] = new twSigne("Bélier",3,21,4,19,"feu","Cardinal","m","Mars","Rouge","Rubis","Fer","Impulsif, actif, aventureux, meneur","Lion","Gémeaux, Verseau","Jean-Sébastien Bach, Verlaine, Fragonard, Marlon Brando, Simone Signoret","");
aSigne[4] = new twSigne("Taureau",4,20,5,19,"terre","Fixe","f","Vénus","Vert","Emeraude","Cuivre","Persévérant, possessif, matérialiste, bâtisseur","Bélier","Vierge, Gémeaux","Machiavel, Freud, Karl Marx, Jean Gabin, Orson Welles","");
aSigne[5] = new twSigne("Gémeaux",5,20,6,21,"air","Neutre mutable","m","Mercure","Gris","Aigue-Marine","Cristal","Curieux, ouvert, volage, messager","Sagittaire","Cancer, Balance, Verseau","Dante, Pierre le Grand, Richard Strauss, Kafka","");
aSigne[6] = new twSigne("Cancer",6,22,7,22,"eau","Cardinal","f","Lune","Bleu","Turquoise","Argent","Rêveur, imaginatif, sensible, intuitif","Sagittaire","Taureau, Vierge, Poissons","Schubert, Jean-Jacques Rousseau, Marcel Proust, Ernest Hemingway","");
aSigne[7] = new twSigne("Lion",7,23,8,22,"feu","Fixe","m","Soleil","Jaune","Diamant, rubis","Or","fier, généreux, exigeant, possessif","Verseau","Bélier, Balance","Jules César, Napoléon, Alexandre Dumas, Mick Jagger","");
aSigne[8] = new twSigne("Vierge",8,23,9,22,"terre","Mutable","f","Mercure","Blanc, gris","Diamant","Argent","Logique, rigoureux, ordonné, honnête, critique","Taureau","Bélier","Goethe, Ronsard, Richelieu","");
aSigne[9] = new twSigne("Balance",9,23,10,22,"air","Cardinal","m","Vénus","Rose","Corail","Platine","Diplomate, conciliateur, séducteur, partenaire","Sagittaire","Gémeaux, Verseau, Lion","Gandhi, Diderot, John Lenon","");
aSigne[10] = new twSigne("Scorpion",10,23,11,21,"eau","Fixe","f","Pluton","Noir","Améthiste","Cuivre","Extrême, endurant, entier, passionné","Capricorne","Vierge, Poissons, Cancer","Voltaire, Bizet, Luther, George Brassens","");
aSigne[11] = new twSigne("Sagittaire",11,22,12,20,"feu","Mutable","m","Jupiter","Bleu cobalt","Saphir","Mercure","Idéaliste, philosophe, fougueux, aventurier","Bélier","Lion","Beethoven, Winston Churchill, Raimu, Jean Marais, Jean-Louis Trintignant","");

Ensuite, une fonction ou prototype pour récupérer le numéro du signe selon une date.

Date.prototype.twSigne=function (){
// Script gratuit des Trucsweb.com
// Retourne le numéro du signe zodiaque
// d'un objet date
var nMois = this.getMonth()+1;
var nJour = this.getDate();
var sSigne = -1;
for (i=0; i<aSigne.length; i++) {
if (((nMois==aSigne[i].mDeb)&&(nJour>=aSigne[i].jDeb))||((nMois==aSigne[i].mFin)&&(nJour<=aSigne[i].jFin))) {
sSigne = i;
break;
}
}
return sSigne;
}

Tu peux donc trouver le signe zodiaque précis d'une date simplement comme ceci :

dDate1 = new Date();
var numeroDuSigne1 = dDate1.twSigne();

OU

dDate2 = new Date('Wed Jan 14 11:59:10 EST 2004');
var numeroDuSigne2 = dDate2.twSigne();

Et donc afficher par exemple :

dDate1 = new Date();
var numeroDuSigne1 = dDate1.twSigne();
alert(aSigne[numeroDuSigne1].nom);

OU simplement

dDate1 = new Date();
alert(aSigne[dDate1.twSigne()].nom);

Voilà une fonction qui retourne la chaine de tous les détail d'un signe :

function twChaineSigne(_num) {
// Script gratuit des Trucsweb.com
// Retourne une chaîne des détail d'un signe zodiaque
// selon le numéro du signe obtenu par le prototype "twSigne"
var sChaine = aSigne[_num].nom + "\n";
sChaine += "Élement : " + aSigne[_num].element + "\n";
sChaine += "Type : " + aSigne[_num].type + "\n";
sChaine += "Sexe : " + aSigne[_num].sexe + "\n";
sChaine += "Planète : " + aSigne[_num].planete + "\n";
sChaine += "Couleur : " + aSigne[_num].couleur + "\n";
sChaine += "Pierre : " + aSigne[_num].pierre + "\n";
sChaine += "Métal : " + aSigne[_num].metal + "\n";
sChaine += "\nCaractère : " + aSigne[_num].caractere + "\n";
sChaine += "\nPartenaires : " + aSigne[_num].partenaires + "\n";
sChaine += "\nAffinités : " + aSigne[_num].affinites + "\n";
sChaine += "\nCélibtités : " + aSigne[_num].celebres + "\n";
if (aSigne[_num].discordance!="") sChaine += "\nDiscordance" + aSigne[_num].discordance + "\n";
return sChaine;
}

Tu peux alors faire :

// Exemple avec la date du jour
// Et d'une date construite
dDate1 = new Date();
dDate2 = new Date('Wed Jan 14 11:59:10 EST 2004');

alert(twChaineSigne(dDate1.twSigne()));
alert(twChaineSigne(dDate2.twSigne()));

Ça devrait faire l'affaire. Note que le même principe d'utiliser un "objet" pourrait aussi simplifier ton histoire de message_fin!

Note aussi que tu peux retirer tout ce qu'il y a après "Un petit plus" et retourner le nom du signe au lieu du numéro de signe dasn la fonction "twSigne". De cette façon :

Date.prototype.twSigne=function (){
// Script gratuit des Trucsweb.com
// Retourne le numéro du signe zodiaque
// d'un objet date
var nMois = this.getMonth()+1;
var nJour = this.getDate();
var sSigne = "Erreur";
for (i=0; i<aSigne.length; i++) {
if (((nMois==aSigne[i].mDeb)&&(nJour>=aSigne[i].jDeb))||((nMois==aSigne[i].mFin)&&(nJour<=aSigne[i].jFin))) {
sSigne = aSigne[i].nom;
break;
}
}
return sSigne;
}

Ciao
Oznog


Réponses

 Aucune réponse à ce message... 
Aucun médias sociaux
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@