Javascript- Boolean

Résolu
Harmonye -  
lucas06150 Messages postés 156 Statut Membre -
Bonjour,

j'ai actuellement un exercice à faire. Le sujet étant le suivant : Ecrire un algorithme qui demande à l'utilisation de saisir une date (jour, mois, année) et affiche si cette date est valide ou non.

J'ai tout d'abord résolu cet exercice en faisait un algorithme que j'ai voulu mettre en javascript:

<html>
<body>
<script>

var jour;
var mois;
var annee;
var bissextile=Boolean;

do
{
jour=Number(prompt("Entrez un jour"));
}
while ((jour<1) || (jour >31));

do
{
mois=Number(prompt("Entrez un mois"));
}
while ((mois<1) || (mois>12));

annee=Number(prompt("Entrez une année"));

bissextile=false;

if ((( annee%4==0) && (annee%100!=0)) || (annee%400==0)))

bissextile=true;


if (mois=2)
{
if (bissextile=true)
{
if (jour>29)
{
document.write("Date invalide");
}
else
{
document.write("Date valide");
}
else
{
if (jour>28)
{
document.write("Date invalide");
}
else
{
document.write("Date valide");
}
}
}
}

do
{
jour=Number(prompt("Entrez un jour"));
}
while ((jour<1) || (jour>31));

do
{
mois=Number(prompt("Entrez u mois"));
}
while ((mois<1) || (mois>12));
}

annee=Number(prompt("Entrez une année"));

</script>
</body>
</html>


Jusqu'à la "bissextile=true;", tout fonctionne mais après, ça ne veut plus. Je pense que je ne sais pas utiliser les boolean correctement, et il se peut aussi que je me sois trompée à un autre endroit.

Pourriez-vous m'aider ?

Merci !


15 réponses

lucas06150 Messages postés 156 Statut Membre 11
 
Bonjour,

L'opérateur de comparaison est == .

Donc, par exemple, if (mois=2) deviens if (mois==2)

Tu dois sûrement avoir des erreurs à cause de ça
0
Harmonye
 
Merci , je n'avais pas vu cette erreur ! J'ai modifié mais ça plante toujours.
Les valeurs boleans qui sont dans le javascript sont-elles correctes ? :/
0
lucas06150 Messages postés 156 Statut Membre 11
 
Je ne pense pas qu'il soit utile d'écrire ca
var bissextile=Boolean;

Essaye en mettant var bissextile = false;
0
Harmonye
 
Non plus ! :s
0

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

Posez votre question
lucas06150 Messages postés 156 Statut Membre 11
 
Et comme ca :

if ((( annee%4==0) && (annee%100!=0)) || (annee%400==0))){
bissextile=true; 
}


???
0
Harmonye
 
Toujours pas :(
0
lucas06150 Messages postés 156 Statut Membre 11
 
<html>
<body> 
<script> 

var jour; 
var mois; 
var annee; 
var bissextile=Boolean; 

do 
{ 
jour=Number(prompt("Entrez un jour")); 
} 
while ((jour<1) || (jour >31)); 

do 
{ 
mois=Number(prompt("Entrez un mois")); 
} 
while ((mois<1) || (mois>12)); 

annee=Number(prompt("Entrez une année")); 

bissextile=false; 

if (( annee%4==0) && (annee%100!=0) || annee%400==0) {

bissextile=true; 
}

if ((mois=2) && (bissextile=true)  && (jour>29))
{
document.write("Date invalide"); 
} 
else 
{ 
document.write("Date valide"); 
} 


if ((mois=2) && (bissextile=false)  && (jour>28)) 
{ 
document.write("Date invalide"); 
} 
else 
{ 
document.write("Date valide"); 
} 
}

do 
{ 
jour=Number(prompt("Entrez un jour")); 
} 
while ((jour<1) || (jour>31)); 

do 
{ 
mois=Number(prompt("Entrez u mois")); 
} 
while ((mois<1) || (mois>12)); 


annee=Number(prompt("Entrez une année")); 

</script> 
</body> 
</html>



Essais ca
0
Harmonye
 
Non ça ne donne rien.
0
lucas06150 Messages postés 156 Statut Membre 11
 
En revanche pour mon code (que je viens de te donner), j'ai créer un fonction Date() comprenant tout ton code javascript appelé par un bouton dans un formulaire.

Autrement je ne vois pas comment tu peux faire appelle au code javascript ??..

Est-ce que le code que tu as fournis est tout le code de ta page ?
0
Harmonye
 
Je viens de me rendre compte que je me suis trompée de fin. Je suis plutôt novice en javascript, il serait peut être préférable que je donne mon algorithme ?

Je redonne le js du coup :

<html>
<body>
<script>

var jour;
var mois;
var annee;
var bissextile=boolean;

do
{
jour=Number(prompt("Entrez un jour"));
}
while ((jour<1) || (jour >31));

do
{
mois=Number(prompt("Entrez un mois"));
}
while ((mois<1) || (mois>12));

annee=Number(prompt("Entrez une année"));

bissextile=false;

if ((( annee%4==0) && (annee%100!=0)) || (annee%400==0)))
bissextile=true;

if (mois==2)
{
if (bissextile=true)
{
if (jour>29)
{
document.write("Date invalide");
}
else
{
document.write("Date valide");
}
else
{
if (jour>28)
{
document.write("Date invalide");
}
else
{
document.write("Date valide");
}
else
if ((mois==4) || (mois==6) || (mois==9) || (mois==11))
{
if (jour>30)
{
document.write("Date invalide");
}
else
{
document.write("Date invalide");
}
else
{
document.write("Date valide");
}
</script>
</body>
</html>



Je pense que je me suis trompée, à force d'imbriquer des conditionnelles, je me mélange les pinceaux !
0
lucas06150 Messages postés 156 Statut Membre 11
 
Ce code marche
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="verif_inscription.js" charset="iso_8859-1"></script>
<meta http-equiv="Content-Type" content="text/plain; charset=iso-8859-1" />
<body> 
<script> 

function Date(){
var jour; 
var mois; 
var annee; 
var bissextile=true; 

do { 
	jour=Number(prompt("Entrez un jour")); 
} while ((jour<1) || (jour >31)); 

do { 
	mois=Number(prompt("Entrez un mois")); 
} while ((mois<1) || (mois>12)); 

annee=Number(prompt("Entrez une année")); 
bissextile=false; 

if (( annee%4==0) && (annee%100!=0) || annee%400==0) {
	bissextile=true; 
}
	
if ((mois=2) && (bissextile=true)  && (jour>29)){
	alert("Date invalide"); 
} 
else { 
	alert("Date valide"); 
} 

/*do { 
	jour=Number(prompt("Entrez un jour")); 
} while ((jour<1) || (jour>31)); 

do { 
	mois=Number(prompt("Entrez u mois")); 
} while ((mois<1) || (mois>12)); 

annee=Number(prompt("Entrez une année")); */
}
</script> 

<input type="button" onClick="Date()" value="Test Date"/>
</body> 
</html> 
0
Harmonye
 
Effectivement !
Pouvez-vous m'expliquer ce que vous avez fait ? :o
Quoi que ça ne marche pas avec le 30 04 2010 :/
0
lucas06150 Messages postés 156 Statut Membre 11
 
J'ai simplement écris 3 If en 1 :

if ((mois=2) && (bissextile=true)  && (jour>29))


et enlevé la dernière partie qui était une répétition de la première

Si tu as d'autres questions n'hésite pas !

PS : il te manque tous les tests pour les jours max en fonction des mois

Exemple : 31 jours max en juillet.

Je te laisse réfléchir :)
0
Harmonye
 
Bon bon je vais chercher tout ça, en tout cas, merci beaucoup !
0
lucas06150 Messages postés 156 Statut Membre 11
 
de rien ;)
0