Signe du zodiaque

Soyez le premier à donner votre avis sur cette source.

Vue 15 152 fois - Téléchargée 391 fois

Description

Voici une petite fonction permettant de connaitre le signe astrologique du mois en cours. Cela est vrai, il y plusieurs manières mais je n'avais pas envie de faire un truc du genre .
if (mois == 1 && date >=20 || mois == 2 && date <=23) 12x fois!

Source / Exemple :


<?php

//* DATE du jour */
$date = date("d-m-Y");
$jour=date("d");
$mois=date("m");

//*ou
//* pour une date specifique
// $jour=02;
// $mois=1;

//* affiche resultat
echo $date.'=> '.signe($jour,$mois);

//* fonction
function signe($jour,$mois)
{
$GLOBALS['zodiaque'] = array('Verseau','poissons','Bélier','Taureaux','Gémaux','Cancer','Lion','Vierge','Balance','Scorpion','Sagitaire','Capricorne'); //*   signe
$GLOBALS['periode']= array(20,19,21,20,20,22,23,23,23,23,22,21); //*   limite fin periode pour chaque signe.
$signe='';
$correction=0; //* valeur par défaut.
$periode=$GLOBALS['periode'][($mois-1)]; //* prend la valeur du mois en cours
if($jour < $periode)
	{
	if($mois==1){$correction=1; };//* Evite des erreurs de tableau si $mois est négatif !
	$signe=$GLOBALS['zodiaque'][(($mois-2)+$correction)];
	}
else
	{$signe=$GLOBALS['zodiaque'][$mois-1];}
return $signe;
} //* fin fonction
 
?>

Conclusion :


Resultat pour le : 20-09-2006=> Vierge

Codes Sources

A voir également

Ajouter un commentaire Commentaires
philippe.lerch
Messages postés
8
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
16 mars 2009

15 févr. 2013 à 13:33
Je vois que même après plus de 6 ans, le code est toujours d'actualité. Merci de votre interrêt. Phil.
cs_stay
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
3
15 févr. 2013 à 13:29
Bonjour à tous,

Il y a une autre erreur qui me semble pertinente.
Il y a un jour de décalage pour tous les signes.
Il faut ajouter le égal dans l'expression if ($mois_jour <= $cle)
Sinon, un sagittaire qui est né le 21-12-xxxx est Capricorne.

Merci pour le code.

stéph
cs_Tioneb
Messages postés
193
Date d'inscription
dimanche 16 décembre 2001
Statut
Membre
Dernière intervention
29 juillet 2015

5 févr. 2012 à 14:32
Désolé Barok, mais ta fonction ne fonctionne pas en l'état. Il y a 3 erreurs! Il faut fermer le mot Vierge et mettre une virgule et tu t'es trompé dans la variable de retour, il faut mettre return $tab_date_signe[$cle];

Et un petit return false; après le foreach n'aurait pas fait de mal. Après ces modifs, on peut dire qu'elle fonctionne parfaitement!
barok
Messages postés
9
Date d'inscription
lundi 7 juillet 2003
Statut
Membre
Dernière intervention
27 février 2010

27 févr. 2010 à 21:35
désolé, l'indentation ne fonctionne pas, mais la fonction elle marche parfaitement
barok
Messages postés
9
Date d'inscription
lundi 7 juillet 2003
Statut
Membre
Dernière intervention
27 février 2010

27 févr. 2010 à 21:32
Il y a plus simpe :

function Get_signe ($date_naissance)
{
$date_naissance; # une date au format AAAA-MM-JJ
$mois_jour = substr($date_naissance, 5, 2).substr($date_naissance, 8, 2);
$tab_date_signe = array(
'0120' => 'Capricorne',
'0218' => 'Verseau',
'0320' => 'Poisson',
'0420' => 'Belier',
'0521' => 'Taureau',
'0621' => 'Gemeaux',
'0722' => 'Cancer',
'0822' => 'Lion',
'0922' => 'Vierge
'1022' => 'Balance',
'1122' => 'Scorpion',
'1221' => 'Sagittaire',
'1300' => 'Capricorne',
);

foreach ($tab_date_signe as $cle => $valeur)
{
if ($mois_jour < $cle)
{
return $tab_signe[$valeur];
}
}
}
$signe = Get_signe('1983-01-13'); # renvoi Capricorne

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.