Javascript- Boolean

Résolu/Fermé
Harmonye - 10 oct. 2010 à 11:53
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 - 10 oct. 2010 à 14:34
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 !


A voir également:

15 réponses

lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
10 oct. 2010 à 13:06
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
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 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
10 oct. 2010 à 13:30
Je ne pense pas qu'il soit utile d'écrire ca
var bissextile=Boolean;

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

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

Posez votre question
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
10 oct. 2010 à 13:37
Et comme ca :

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


???
0
Toujours pas :(
0
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
10 oct. 2010 à 13:56
<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
Non ça ne donne rien.
0
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
10 oct. 2010 à 14:03
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
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 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
10 oct. 2010 à 14:21
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
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 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
10 oct. 2010 à 14:30
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
Bon bon je vais chercher tout ça, en tout cas, merci beaucoup !
0
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
10 oct. 2010 à 14:34
de rien ;)
0