Javascript- Boolean

[Résolu/Fermé]
Signaler
-
Messages postés
151
Date d'inscription
jeudi 17 décembre 2009
Statut
Membre
Dernière intervention
19 juillet 2012
-
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

Messages postés
151
Date d'inscription
jeudi 17 décembre 2009
Statut
Membre
Dernière intervention
19 juillet 2012
9
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
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 ? :/
Messages postés
151
Date d'inscription
jeudi 17 décembre 2009
Statut
Membre
Dernière intervention
19 juillet 2012
9
Je ne pense pas qu'il soit utile d'écrire ca
var bissextile=Boolean;

Essaye en mettant var bissextile = false;
Messages postés
151
Date d'inscription
jeudi 17 décembre 2009
Statut
Membre
Dernière intervention
19 juillet 2012
9
Et comme ca :

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


???
Toujours pas :(
Messages postés
151
Date d'inscription
jeudi 17 décembre 2009
Statut
Membre
Dernière intervention
19 juillet 2012
9
<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
Non ça ne donne rien.
Messages postés
151
Date d'inscription
jeudi 17 décembre 2009
Statut
Membre
Dernière intervention
19 juillet 2012
9
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 ?
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 !
Messages postés
151
Date d'inscription
jeudi 17 décembre 2009
Statut
Membre
Dernière intervention
19 juillet 2012
9
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> 
Effectivement !
Pouvez-vous m'expliquer ce que vous avez fait ? :o
Quoi que ça ne marche pas avec le 30 04 2010 :/
Messages postés
151
Date d'inscription
jeudi 17 décembre 2009
Statut
Membre
Dernière intervention
19 juillet 2012
9
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 :)
Bon bon je vais chercher tout ça, en tout cas, merci beaucoup !
Messages postés
151
Date d'inscription
jeudi 17 décembre 2009
Statut
Membre
Dernière intervention
19 juillet 2012
9
de rien ;)