Activation selon heure (fct° faite mais pb) - Page 3

Résolu
Précédent
  • 1
  • 2
  • 3
nrobin Messages postés 49 Statut Membre 1
 
Je te remercie sam3000. Ca répond exactement à ma demande. (mis à part au niveau du test si valide ou non. Je préfère <= ou >= pluto que < ou >)

Aini, çà me plaît mieux. Il ne me restera qu'à remettre ton code en forme pour que ce soit un peu plus personnel (et oui, je n'aime pas pomper le travail des concepteurs). Ensuite, je retirerai le paramétrage des secondes. Je n'ai pas besoin d'être aussi précis mais tu ne pouvais pas le savoir.

Si tu es intéressé, je te passerrai ma version finale mes je pense que niveau codes à ralonges, vous avez eu votre dose. LoL

++
et merci encore

Nico.

(Je ne cloture pas cette discussion. Je pourrais encore avoir besoin de vous à ce sujet. hihi!!!!)
0
sam3000 Messages postés 1226 Statut Membre 144
 
non, je t'en pris!
ferme ce post, et si tu as besoin d'aide ouvre un nouveau post!
j'en ait ma dose de ces long listings!!
0
kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Il faut que tu coche 'résolu' mister nrobin please...
0
TLa Messages postés 57 Statut Membre 12
 
voici ma version !!

c'est fou ce que le javascript peut etre efficace !!

<html>
<head>
  <title>Activation par date/heure</title>
</head>
<script language="JavaScript" type="text/javascript">
// Date Courante
var DateTimer;

function Field(name,max,pad,sep,offu,offd)
{
	this.name=name; // nom conforme aux getXxx de l'objet Date
	this.max=max;   // combien de valeur ? , 0 => pas limite
	this.pad=pad;   // ca se presente sur combien de chiffre
	this.sep=sep;   // avec quel separateur qui suit
	this.offu=offu; // ca commence a combien pour un humain
	this.offd=offd; // ca commence a combien pour l'objet Date
}

var fields=[
	new Field("Date",    31,2,"/",1,1),
	new Field("Month",   12,2,"/",1,0),
	new Field("FullYear", 0,4," ",0,0),
	new Field("Hours",   24,2,":",0,0),
	new Field("Minutes", 60,2,":",0,0),
	new Field("Seconds", 60,2,"" ,0,0)
];

function zeroHead(v,count)
{
	var str = v.toString();
	while(str.length<count)
		str="0"+str;
	return str;
}

Date.prototype.formated=function()
{
	var res="";
	for(var i=0;i<fields.length;i++)
	{
		field=fields[i];
		var v=eval("this.get" + field.name + "();")
		res+= zeroHead(v - field.offd + field.offu ,field.pad) + field.sep;
	}
	return res;
}

Date.prototype.toForm=function(line)
{
	for(var i=0;i<fields.length;i++)
	{
		field=fields[i];
		var v=eval("this.get" + field.name + "();");
		v-=field.offd; // on rammene ca commencant a zero
		//v=zeroHead(v+field.offu,field.pad); // c'est fait par la liste du formulaire
		eval("document.idDates.idDate" + line + field.name + ".value=v;");
	}
}

Date.prototype.fromForm=function(line)
{
	for(var i=0;i<fields.length;i++)
	{
		field=fields[i];
		var v=eval("document.idDates.idDate" + line + field.name + ".value;");
		v=parseInt(v);
		v+=field.offd;
		eval("this.set" + field.name + "(v);");
	}
	return this;
}

function DateCourante()
{
	var date=new Date();

	document.idDates.idDateCourante.value=date.formated();
	DateTimer=setTimeout("DateCourante()",1000);
}

function DateDebutInit()
{
	var date=new Date();
	date.toForm("Debut");
}

function DateFinInit()
{
	var date=new Date();
	date.toForm("Fin");
}

function ValiderDate()
{
	var valide=true;
	var dtCourante=new Date();

	var dtDebut=(new Date()).fromForm("Debut");
	var dtFin  =(new Date()).fromForm("Fin");


	//alert("c="+dtCourante+",D="+dtDebut+",F="+dtFin);
	//valide=(dtDebut-dtCourante)<0 && (dtCourante-dtFin)<0;
	valide=(dtDebut<dtCourante) && (dtCourante<dtFin);
	alert( valide ? "Valide :)" : "Non Valide!!" );
	return valide;
}

function main()
{
	DateCourante();
	DateDebutInit();
	DateFinInit();
}
function main_close()
{
	clearTimeout(DateTimer);
}

</script>

<body onload="main()" onunload="main_close()">
<form name="idDates">
	<table>
	<tr>
	<td> Date Courante : </td>
	<td> <input name="idDateCourante"/> </td>
	<td></td>
	<td></td>
	</tr>
<script language="JavaScript" type="text/javascript">
var lines=["Debut","Fin"];
for(l=0;l<lines.length;l++)
{
	document.write("<tr>");
	document.write("<td> Date " + lines[l] + " : </td>");
	document.write("<td>");
	document.write("<select name='idDate" + lines[l] + "Date'>");
	for(var i=0;i<31;i++)
		document.write("<option value='" + i + "'>" + zeroHead(i+1,2) + "</option>");
	document.write("</select>/");
	document.write("<select name='idDate" + lines[l] + "Month'>");              
	for(var i=0;i<12;i++)
		document.write("<option value='" + i + "'>" + zeroHead(i+1,2) + "</option>");
	document.write("</select>/");
	document.write("<input name='idDate" + lines[l] + "FullYear'/><br/>");
	document.write("</td>");
	document.write("<td> Heure " + lines[l] + " : </td>");
	document.write("<td>");
	document.write("<select name='idDate" + lines[l] + "Hours'>");
	for(var i=0;i<24;i++)
		document.write("<option value='" + i + "'>" + zeroHead(i,2) + "</option>");
	document.write("</select>:");
	document.write("<select name='idDate" + lines[l] + "Minutes'>");
	for(var i=0;i<60;i++)
		document.write("<option value='" + i + "'>" + zeroHead(i,2) + "</option>");
	document.write("</select>:");
	document.write("<select name='idDate" + lines[l] + "Seconds'>");
	for(var i=0;i<60;i++)
		document.write("<option value='" + i + "'>" + zeroHead(i,2) + "</option>");
	document.write("</select>");
	document.write("</td>");
	document.write("</tr>");
}
</script>
	</table>
	<br/><input name="idValider" type="submit" value="Valider" onclick="ValiderDate();return false;">
</form>
</body>
</html> 

0

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

Posez votre question
TLa Messages postés 57 Statut Membre 12
 
c'est pas bien lisible j'ai mis ça la :

http://thierry.larmoire.free.fr/dev/test/tranchedate.html
0
nrobin Messages postés 49 Statut Membre 1
 
Je vous remercie tous pour votre contribution.

A la prochaine pour une prochaine contribution. LoL.
J'espère quand même être capable de me débrouiller un peu plus tout seul. :-)

++
0
Précédent
  • 1
  • 2
  • 3