Logique php

nag -  
Yorundr Messages postés 289 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai tenté de faire un code php qui me disait l'age, le signe du zodiaque et l'astrologie chinoise des gens.

Donc résultat, les 2 premiers marchent mais j'ai du mal pour le 3e.

Voilà les conditions:

1999 fév. 16 à 2000 fév. 04 = signe astro est lièvre

voici le code que sa donne:

if(($annee == 1999 and $jour>16 and $mois==2) or ($annee == 1999 and $mois>2) or ($annee==2000 and $jour<04 and $mois==2) or ($annee==2000 and $mois==1)) 

{
$chinois = "Lièvre";
}


donc j'aimerais que l'on maide à continuer le code.


if(($annee == 1999 and $jour>16 and $mois==2) or ($annee == 1999 and $mois>2) or ($annee==2000 and $jour<04 and $mois==2) or ($annee==2000 and $mois==1)) 

{
$chinois = "Lièvre";
}

else


voila apes ''else''

c'est là que vous dever mettre les condition suivantes:

2000 fév. 05 à 2001 jan. 23 = dragon


De plus, j'aimerais que vous me disiez comment vous avez fait pour faire le bout de code car je ne voit pas la logique de comment le faire. Le premier bout de code provient de mon professeur.

Un gros merci à celui qui réussiras.
A voir également:

25 réponses

romrom7777 Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   11
 
Bonjour,

if(($annee == 1999 and $jour>16 and $mois==2) or ($annee == 1999 and $mois>2) or ($annee==2000 and $jour<04 and $mois==2) or ($annee==2000 and $mois==1))

{
$chinois = "Lièvre";
}

else if(($annee == 2000 and $jour>05 and $mois==2) or ($annee == 2000 and $mois>2) or ($annee==2001 and $jour<23 and $mois==2) or ($annee==2001 and $mois==1))

{
$chinois = "Dragon";
}

et ainsi de suite
0
Giorgiolino Messages postés 253 Date d'inscription   Statut Contributeur Dernière intervention   52
 
Bonjour,

en principe si tu as compris la logique des signes chinois et le code de ton professeur,
la suite devrait aller toute seule. Voici la méthode à suivre a minima :

1) Trouver les conditions pour les autres signes.

2) Les traduire en code en t'inspirant du code de ton prof.

3) Enchaîner les codes php de la manière suivante :

Si (condition_lièvre = vérifiée)
alors Signe = lièvre

Sinon Si (condition_cochon = vérifiée)
alors Signe = cochon

Sinon Si ...

...et ainsi de suite.
Ce qui se traduira en php par quelque chose du style :

if ( condition1)
résultat1;

else if (condition2)
resultat2;

else if ...

etc.



Bon codage.
0
Arod
 
1999 fév. 16 à 2000 fév. 04 = signe astro est lièvre

f(($annee == 1999 and $jour>16 and $mois==2) or ($annee == 1999 and $mois>2) or ($annee==2000 and $jour<04 and $mois==2) or ($annee==2000 and $mois==1))

{
$chinois = "Lièvre";
}

else
{
if($annee == 1999 and $jour > 16 and $mois > 2)
$astro = "lièvre";
if($anne == 2000 and $jour < 4 and $mois <= 2)
$astro = "liévre";
}

ca devrait faire l'affaire ;)
0
login08 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   3
 
Je ne pense pas que c'est ce qu'il attend.

De plus ce qui se trouve dans ta condition if n'est pas correct.
0
login08 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour,

Je penserais à un truc comme ça,
if(($annee == 1999 and $jour>16 and $mois==2) or ($annee == 1999 and $mois>2) or ($annee==2000 and $jour<04 and $mois==2) or ($annee==2000 and $mois==1)) 

{
$chinois = "Lièvre";
}

else if ( ( $annee == 2000 and $jour > 5 and $mois == 2 ) or ( $annee == 2000 and $mois > 2 ) or ( $annee == 2001 and $jour < 25 and $mois == 1 ) )

{
$chinois = "Dragon";
}


Voilà.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Yorundr Messages postés 289 Date d'inscription   Statut Membre Dernière intervention   44
 
Bonjour,

heu.. je suis pas trés fan de la facon dont ton prof a fait... Il y a plus simple et moins bricolage...

en passant par les timestamp. En gros tu converti chaque date en timestamp et apres tu les compare, c'est beaucoup mieu je trouve
exemple :

$timestampDebutPeriode=mkdir(0,0,0,2,16,1999)//16 fevrier 1999
$timestampFinPeriode=mkdir(0,0,0,2,4,2000)//4 fevrier 2000
$timestampMaDate =...

if ($timestampDebutPeriode>=$timestampMaDate) && ($timestampMaDate <= $timestampFinPeriode)
$chinois = "Lievre";

et tu repete ca pour chaque signe et voila

PS : tu devrait eviter les "j'aimerais que ..." et les remplacer par des "Pourriez vous svp..." ca donnerai moin l'impression que tu nous donne des ordres...
0