Activation selon heure (fct° faite mais pb)
Résolu/Fermé
nrobin
Messages postés
49
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
22 avril 2008
-
9 mai 2005 à 16:34
nrobin Messages postés 49 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 22 avril 2008 - 12 mai 2005 à 10:59
nrobin Messages postés 49 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 22 avril 2008 - 12 mai 2005 à 10:59
A voir également:
- Activation selon heure (fct° faite mais pb)
- Clé d'activation windows 10 gratuit - Guide
- Colissimo heure de livraison après-midi - Forum Consommation & Internet
- Clé activation office 2010 gratuit - Télécharger - Sécurité
- 1go internet = combien d'heure - Forum Mobile
46 réponses
nrobin
Messages postés
49
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
22 avril 2008
1
10 mai 2005 à 10:38
10 mai 2005 à 10:38
J'ai testé ton truc. Je n'arrive à rien avec. :(
Voila ce que j'ai fait:
Sinon, voila mes déclarations:
Voila ce que j'ai fait:
valide=true; if (((valide) && (PC_Date[2] > PARAM_Date_FIN[2])) // Si Année_PC > Année_Param_FIN alors valide=FAUX || ((valide) && (PC_Date[1] > PARAM_Date_FIN[1])) // Si Mois_PC > Mois_Param_FIN alors valide=FAUX || ((valide) && (PC_Date[0] > PARAM_Date_FIN[0])) // Si Jour_PC > Jour_Param_FIN alors valide=FAUX || ((valide) && (PC_Heure[1] > PARAM_Heure_FIN[1])) // Si Heure_PC > Heure_Param_FIN alors valide=FAUX || ((valide) && (PC_Heure[0] > PARAM_Heure_FIN[0])) // Si Minute_PC > Minute_Param_FIN alors valide=FAUX || ((valide) && (PC_Date[2] < PARAM_Date_DBT[2])) // Si Année_PC < Année_Param_DBT alors valide=FAUX || ((valide) && (PC_Date[1] < PARAM_Date_DBT[1])) // Si Mois_PC < Mois_Param_DBT alors valide=FAUX || ((valide) && (PC_Date[0] < PARAM_Date_DBT[0])) // Si Jour_PC < Jour_Param_DBT alors valide=FAUX || ((valide) && (PC_Heure[1] < PARAM_Heure_DBT[1])) // Si Heure_PC < Heure_Param_DBT alors valide=FAUX || ((valide) && (PC_Heure[0] < PARAM_Heure_DBT[0]))) // Si Minute_PC < Minute_Param_DBT alors valide=FAUX { valide=false; return valide; } if (valide == true) { alert ("ACTIVATION"); // Si valide=VRAI alors on est dans l'intervalle voulu: ==>> ACTIVATION } else { alert ("DEFAUT"); }
Sinon, voila mes déclarations:
var cf=document.forms[0]; date=new Date(); /* Déclaration des tableaux */ PC_Date=new Array (3); PC_Heure=new Array (2); PARAM_Date_DBT=new Array (3); PARAM_Heure_DBT=new Array (2); PARAM_Date_FIN=new Array (3); PARAM_Heure_FIN=new Array (2); /* Récupération des horaires PC */ PC_Date[0]=PC_Jours=date.getDate(); PC_Date[1]=PC_Mois=(date.getMonth()+1); PC_Date[2]=PC_Annees=date.getFullYear(); PC_Heure[0]=PC_Heures=date.getHours(); PC_Heure[1]=PC_Minutes=date.getMinutes(); /* Récupération des horaires Paramétrées */ /* Paramétrage Horaires de DEBUT */ PARAM_Date_DBT[0]=PARAM_Jours_DBT=Jours_DBT.value; PARAM_Date_DBT[1]=PARAM_Mois_DBT=Mois_DBT.value; PARAM_Date_DBT[2]=PARAM_Annees_DBT=Annees_DBT.value; PARAM_Heure_DBT[0]=PARAM_Heures_DBT=Heures_DBT.value; PARAM_Heure_DBT[1]=PARAM_Minutes_DBT=Minutes_DBT.value; /* Paramétrage Horaires de FIN */ PARAM_Date_FIN[0]=PARAM_Jours_FIN=Jours_FIN.value; PARAM_Date_FIN[1]=PARAM_Mois_FIN=Mois_FIN.value; PARAM_Date_FIN[2]=PARAM_Annees_FIN=Annees_FIN.value; PARAM_Heure_FIN[0]=PARAM_Heures_FIN=Heures_FIN.value; PARAM_Heure_FIN[1]=PARAM_Minutes_FIN=Minutes_FIN.value;
sam3000
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
144
9 mai 2005 à 17:43
9 mai 2005 à 17:43
je te donne un algorithme et je te laisse le soin d'ecrire le javascript (c'est trop lent à lire ton code :) )
le principe est de donner une priorite aux valeurs selon l'importance du champs (heure<jour<mois<annee)
à la fin si (valide=vrai) donc tu es dans l'interval désiré
le principe est de donner une priorite aux valeurs selon l'importance du champs (heure<jour<mois<annee)
valide=vrai si (valide) et (monAnnee>finAnnee) alors valide=faux si (valide) et (monMois>finMois) alors valide=faux si (valide) et (monJour>finJour) alors valide=faux si (valide) et (monHeure>finHeure) alors valide=faux si (valide) et (monAnnee<debAnnee) alors valide=faux si (valide) et (monMois<debMois) alors valide=faux si (valide) et (monJour<debJour) alors valide=faux si (valide) et (monHeure<debHeure) alors valide=faux
à la fin si (valide=vrai) donc tu es dans l'interval désiré
nrobin
Messages postés
49
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
22 avril 2008
1
10 mai 2005 à 10:00
10 mai 2005 à 10:00
Est-ce que chaque condition doit être indépendante l'une de l'autre?
De la forme:
ou pluto de la forme:
Et est-ce que je peux toujours mettre <= ou >= ou est-ce que c'est strictement < ou >?
Normalement, je pense pouvoir gardé la possibilité d'égalité. En tout cas, çà me serai nécessaire dans le cas présent.
De la forme:
if { if { if { } } }
ou pluto de la forme:
if { } if { } if { } if { }
Et est-ce que je peux toujours mettre <= ou >= ou est-ce que c'est strictement < ou >?
Normalement, je pense pouvoir gardé la possibilité d'égalité. En tout cas, çà me serai nécessaire dans le cas présent.
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 mai 2005 à 10:11
10 mai 2005 à 10:11
Oui, les if(){ } sont indépendant les un des autres
et les égalité strictes ou non, c'est à toi de définir si tu veux les mettre strict ou non, selon ta gestion du truc... (g pas lu ce que tu as fat, c"'est vrai que c'est relativement lent à lire...)
++
et les égalité strictes ou non, c'est à toi de définir si tu veux les mettre strict ou non, selon ta gestion du truc... (g pas lu ce que tu as fat, c"'est vrai que c'est relativement lent à lire...)
++
nrobin
Messages postés
49
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
22 avril 2008
1
10 mai 2005 à 10:10
10 mai 2005 à 10:10
J'ai bien compris. Je suis vraiment étourdi. C'est forcément strictement < ou > dans ce cas. comme je veux que sa puisse être valide=VRAI quand c'est =.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 mai 2005 à 10:15
10 mai 2005 à 10:15
oui, et sisonn pour tes test, il est préférables de mettre de cette facon :
Cela évite de refaire les autre test, si jamais ta valeur devient fausse des le premier test, et donc moins de calculs...
Il meme encore mieux d'écrire comme cela :
Moins on en fait, et mieux on se porte...
++
if( ....){ truc = false; } else if( ....){ truc = false; } else if( ..... ){ truc = false; } ...
Cela évite de refaire les autre test, si jamais ta valeur devient fausse des le premier test, et donc moins de calculs...
Il meme encore mieux d'écrire comme cela :
truc = true; if( ( .....) || (.....) || (....) ..... || (....) ) truc = false; return truc;
Moins on en fait, et mieux on se porte...
++
nrobin
Messages postés
49
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
22 avril 2008
1
10 mai 2005 à 10:23
10 mai 2005 à 10:23
Il n'y a toujours pas de priorité.
Le résultat est le même que précédemment.
Voila mon code:
Le résultat est le même que précédemment.
Voila mon code:
valide=true; if ((valide) && (PC_Date[2] > PARAM_Date_FIN[2])) {valide=false;} // Si Année_PC > Année_Param_FIN alors valide=FAUX if ((valide) && (PC_Date[1] > PARAM_Date_FIN[1])) {valide=false;} // Si Mois_PC > Mois_Param_FIN alors valide=FAUX if ((valide) && (PC_Date[0] > PARAM_Date_FIN[0])) {valide=false;} // Si Jour_PC > Jour_Param_FIN alors valide=FAUX if ((valide) && (PC_Heure[1] > PARAM_Heure_FIN[1])) {valide=false;} // Si Heure_PC > Heure_Param_FIN alors valide=FAUX if ((valide) && (PC_Heure[0] > PARAM_Heure_FIN[0])) {valide=false;} // Si Minute_PC > Minute_Param_FIN alors valide=FAUX if ((valide) && (PC_Date[2] < PARAM_Date_DBT[2])) {valide=false;} // Si Année_PC < Année_Param_DBT alors valide=FAUX if ((valide) && (PC_Date[1] < PARAM_Date_DBT[1])) {valide=false;} // Si Mois_PC < Mois_Param_DBT alors valide=FAUX if ((valide) && (PC_Date[0] < PARAM_Date_DBT[0])) {valide=false;} // Si Jour_PC < Jour_Param_DBT alors valide=FAUX if ((valide) && (PC_Heure[1] < PARAM_Heure_DBT[1])) {valide=false;} // Si Heure_PC < Heure_Param_DBT alors valide=FAUX if ((valide) && (PC_Heure[0] < PARAM_Heure_DBT[0])) {valide=false;} // Si Minute_PC < Minute_Param_DBT alors valide=FAUX if (valide == true) { alert ("ACTIVATION"); // Si valide=VRAI alors on est dans l'intervalle voulu: ==>> ACTIVATION } else { alert ("DEFAUT"); }
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 mai 2005 à 10:31
10 mai 2005 à 10:31
Ton pb ne viendrait pas plutot du calcul du deuxieme temps, l'horaire de fin (que tu as mis dans ton premier exemple).
nrobin
Messages postés
49
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
22 avril 2008
1
10 mai 2005 à 10:28
10 mai 2005 à 10:28
je n'avais pas lu ton dernier message. J'essais çà de suite.
Merci
Merci
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 mai 2005 à 10:50
10 mai 2005 à 10:50
Dans ce que tu as fait (suite de if( ... || ...|| ...) ), il faut déjà virer tous les (valide), ca ne sert strictement a rien !
Pour le reste... tu dois avoir mal fait un truc qqpart mais je comprend pas ce que tu as fait
++
Pour le reste... tu dois avoir mal fait un truc qqpart mais je comprend pas ce que tu as fait
++
nrobin
Messages postés
49
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
22 avril 2008
1
10 mai 2005 à 10:55
10 mai 2005 à 10:55
Tout d'abord,
Quand, il est là, je n'ai plus mon message DEFAUT.
J'ai essayé une autre structure plutôt similaire mais çà n'arrive toujours pas à gérer la priorité.
Voila le code:
Mais que faire pour gérer cette satanée priorité sur mes conditions??????????
Je vais faire 2 3 recherches sur le net sur les gestions de priorités et je repasse faire un tour sur le forum des fois que quelqu'un serait plus malin que moi. (chose dont je ne doute aucunement) Vous êtes trop fort quand même. C'est çà les passionnés.
allez, MERCI.
a++
return valide;fout la m....
Quand, il est là, je n'ai plus mon message DEFAUT.
J'ai essayé une autre structure plutôt similaire mais çà n'arrive toujours pas à gérer la priorité.
Voila le code:
valide=true; if ((valide) && (PC_Date[2] > PARAM_Date_FIN[2])) {valide=false;} else if ((valide) && (PC_Date[1] > PARAM_Date_FIN[1])) {valide=false;} else if ((valide) && (PC_Date[0] > PARAM_Date_FIN[0])) {valide=false;} else if ((valide) && (PC_Heure[1] > PARAM_Heure_FIN[1])) {valide=false;} else if ((valide) && (PC_Heure[0] > PARAM_Heure_FIN[0])) {valide=false;} else if ((valide) && (PC_Date[2] < PARAM_Date_DBT[2])) {valide=false;} else if ((valide) && (PC_Date[1] < PARAM_Date_DBT[1])) {valide=false;} else if ((valide) && (PC_Date[0] < PARAM_Date_DBT[0])) {valide=false;} else if ((valide) && (PC_Heure[1] < PARAM_Heure_DBT[1])) {valide=false;} else if ((valide) && (PC_Heure[0] < PARAM_Heure_DBT[0])) {valide=false;} if (valide == true) { alert ("ACTIVATION"); } else { alert ("DEFAUT"); }
Mais que faire pour gérer cette satanée priorité sur mes conditions??????????
Je vais faire 2 3 recherches sur le net sur les gestions de priorités et je repasse faire un tour sur le forum des fois que quelqu'un serait plus malin que moi. (chose dont je ne doute aucunement) Vous êtes trop fort quand même. C'est çà les passionnés.
allez, MERCI.
a++
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 mai 2005 à 11:03
10 mai 2005 à 11:03
Evidement c'était pour l'exemple que j'ai mis return valide en pensant etre dans une fonction, toi il ne faut pas mettre return valide tout simplement :
Voilà, la c'est tout de suite mieux, plus propre et plus compréhensible comme code. Mais je ne dis pas que ca regle ton pb. Soit tu as mis de mauvais tests, soit ca vient d'avant (initialisation et remplissage de tes tableaux de données.
++
var valide = true; if ( (PC_Date[2] > PARAM_Date_FIN[2]) || (PC_Date[1] > PARAM_Date_FIN[1]) || (PC_Date[0] > PARAM_Date_FIN[0]) || (PC_Heure[1] > PARAM_Heure_FIN[1]) || (PC_Heure[0] > PARAM_Heure_FIN[0]) || (PC_Date[2] < PARAM_Date_DBT[2]) || (PC_Date[1] < PARAM_Date_DBT[1]) || (PC_Date[0] < PARAM_Date_DBT[0]) || (PC_Heure[1] < PARAM_Heure_DBT[1]) || (PC_Heure[0] < PARAM_Heure_DBT[0]) ) valide=false; if(valide == true) alert("engagement"); else alert("rien du tout");
Voilà, la c'est tout de suite mieux, plus propre et plus compréhensible comme code. Mais je ne dis pas que ca regle ton pb. Soit tu as mis de mauvais tests, soit ca vient d'avant (initialisation et remplissage de tes tableaux de données.
++
nrobin
Messages postés
49
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
22 avril 2008
1
10 mai 2005 à 11:18
10 mai 2005 à 11:18
Je ne pense pas que sa vienne de ce que j'ai fait avant. Je peux te filer le code de ma page si tu es favorable à l'insomnie. C'est toi qui vois...
Je pense vraiment que c'est un soucis de priorité dans mes conditions. Ce que l'on à fait jusqu'à maintenant revien exactement à ce que j'avais déjà fait mais écrit sous une autre forme.
Cela dit, çà m'a inspiré. Ce qu'il faudrait, ce serait testé l'année, le mois , le jour ,l'heure puis les minutes.
Supposons les paramètres suivants:
Si la date de FIN est supérieure à celle de DEBUT alors l'heure (minutes y compris) de FIN peut être < à l'heure de DEBUT.
Je ne sais pas si tu situes bien le problème mais en tout cas, j'en suis persuadé, çà doit vraiment venir de mes conditions.
Je pense vraiment que c'est un soucis de priorité dans mes conditions. Ce que l'on à fait jusqu'à maintenant revien exactement à ce que j'avais déjà fait mais écrit sous une autre forme.
Cela dit, çà m'a inspiré. Ce qu'il faudrait, ce serait testé l'année, le mois , le jour ,l'heure puis les minutes.
Supposons les paramètres suivants:
Si la date de FIN est supérieure à celle de DEBUT alors l'heure (minutes y compris) de FIN peut être < à l'heure de DEBUT.
Je ne sais pas si tu situes bien le problème mais en tout cas, j'en suis persuadé, çà doit vraiment venir de mes conditions.
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 mai 2005 à 11:45
10 mai 2005 à 11:45
Avant la série de test, fait un affichage des valeur de chaque variable utilisée dans les test et met le dans un post qu'on voit ensemble ce qui est affiché, et dis moi si tu vois des erreurs qqpart dans les valeur, sinon on va voir ce qui ne va pas dans tes tests alors...
sam3000
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
144
10 mai 2005 à 12:23
10 mai 2005 à 12:23
NON, tous les IF doivent etres independants!
pas de ELSE! comme j'ai fait dans mon post n°1.
l'ordre des IF a une importance, tu commence par l'annee puis mois ....
pas de ELSE! comme j'ai fait dans mon post n°1.
valide=true; if ((valide) && (...) ) valide=false; if ((valide) && (...) ) valide=false; return (valide);
l'ordre des IF a une importance, tu commence par l'annee puis mois ....
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 mai 2005 à 14:17
10 mai 2005 à 14:17
Et alors.. ca ne change rien de rien car l'odre d'éxécution de :
est le suivant :
si test1 = ok alors on tente test2
si test2 = ok alors on tente test3,
etc..
Donc tant qu'il met ses test dans le bon ordre, cela ne changera rien.
if( (test1) || (test2) || (test3) ) truc = false;
est le suivant :
si test1 = ok alors on tente test2
si test2 = ok alors on tente test3,
etc..
Donc tant qu'il met ses test dans le bon ordre, cela ne changera rien.
sam3000
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
144
10 mai 2005 à 14:34
10 mai 2005 à 14:34
non, c'est pas la meme chose!
nrobin
Messages postés
49
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
22 avril 2008
1
10 mai 2005 à 14:59
10 mai 2005 à 14:59
J'ai décidé de partir sur un truc totalement différent.
Je vous fait part du code si çà vous dit de le décortiquer.
Là, je fais une comparaison entre les dates de début et les dates de fin (idem avec l'heure)
Ca, c'est le test:
Evidemment, çà ne marche pas encore mais je pense que çà ressemble un peu plus au chemin à suivre.
Si çà vous inspire, faites moi part de vos impressions. Il est normal que vous ne comprenez pas tout. Vous êtes pas dans ma tête pour savoir ce que je cherche à faire et j'ai parfois un peu de mal à m'exprimer.
Nico
Je vous fait part du code si çà vous dit de le décortiquer.
Là, je fais une comparaison entre les dates de début et les dates de fin (idem avec l'heure)
/* Comparaison Date Début */ if (PC_Date[2] > PARAM_Date_DBT[2]) { comp_annee_DBT = 1; } else comp_annee_DBT = 0; if (PC_Date[1] > PARAM_Date_DBT[1]) { comp_mois_DBT = 1; } else comp_mois_DBT = 0; if (PC_Date[0] > PARAM_Date_DBT[0]) { comp_jour_DBT = 1; } else comp_jour_DBT = 0; Comp_Date_DBT = comp_annee_DBT + comp_mois_DBT + comp_jour_DBT; if (Comp_Date_DBT != 0) { Date_DBT = 1; } else Date_DBT = 0; /* Comparaison Date Fin */ if (PC_Date[2] < PARAM_Date_FIN[2]) { comp_annee_FIN = 1; } else comp_annee_FIN = 0; if (PC_Date[1] < PARAM_Date_FIN[1]) { comp_mois_FIN = 1; } else comp_mois_FIN = 0; if (PC_Date[0] < PARAM_Date_FIN[0]) { comp_jour_FIN = 1; } else comp_jour_FIN = 0; Comp_Date_FIN = comp_annee_FIN + comp_mois_FIN + comp_jour_FIN; if (Comp_Date_FIN != 0) { Date_FIN = 1; } else Date_FIN = 0; /* Comparaison Heure Début */ if (PC_Heure[1] > PARAM_Heure_DBT[1]) { comp_heure_DBT = 1; } else comp_heure_DBT = 0; if (PC_Heure[0] > PARAM_Heure_DBT[0]) { comp_minute_DBT = 1; } else comp_minute_DBT = 0; Comp_Heure_DBT = comp_heure_DBT + comp_minute_DBT; if (Comp_Heure_DBT != 0) { Heure_DBT = 1; } else Heure_DBT = 0; /* Comparaison Heure FIN */ if (PC_Heure[1] < PARAM_Heure_FIN[1]) { comp_heure_FIN = 1; } else comp_heure_FIN = 0; if (PC_Heure[0] < PARAM_Heure_FIN[0]) { comp_minute_FIN = 1; } else comp_minute_FIN = 0; Comp_Heure_FIN = comp_heure_FIN + comp_minute_FIN; if (Comp_Heure_FIN != 0) { Heure_FIN = 1; } else Heure_FIN = 0;
Ca, c'est le test:
if (Date_FIN > Date_DBT) { alert ("ACTIVATION:\n\nDate_FIN > Date_DBT"); } else if (Date_FIN = Date_DBT) { if (Heure_Fin > Heure_DBT) { alert ("ACTIVATION:\n\nDate_FIN = Date_DBT\nHeure_Fin > Heure_DBT"); } else { alert ("DEFAUT:\n\nDate_FIN = Date_DBT\nHeure_Fin > Heure_DBT"); } } else { alert ("DEFAUT:\n\nDate_FIN > Date_DBT"); }
Evidemment, çà ne marche pas encore mais je pense que çà ressemble un peu plus au chemin à suivre.
Si çà vous inspire, faites moi part de vos impressions. Il est normal que vous ne comprenez pas tout. Vous êtes pas dans ma tête pour savoir ce que je cherche à faire et j'ai parfois un peu de mal à m'exprimer.
Nico
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 mai 2005 à 14:59
10 mai 2005 à 14:59
Et en quoi ?
sam3000
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
144
10 mai 2005 à 15:07
10 mai 2005 à 15:07
par ce que, si par exemple, l'annee est valide et l'heure n'est pas valide, il va tout de meme executer le code: valide=false
nrobin
Messages postés
49
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
22 avril 2008
1
10 mai 2005 à 15:29
10 mai 2005 à 15:29
Alors voila, çà commence à répondre à mes attentes.
Si la date FIN est > à la date DBT, l'heure FIN peut être < ou >. Et l'ACTIVATION est donc OK. C'est l'un des points qui m'intéressait.
PROBLEME à régler:
Il suffit que l'un des éléments de la date FIN soit > à l'un des éléments de la date DBT pour avoir activation. (ex.: Si le jour FIN est > au jour DBT, il se fout du mois et ACTIVATION)
Si la date Fin = date DBT, que l'heure FIN soit > ou < à l'heure DBT il n'y a pas d'activation.
voila, je vais continuer à regarder çà
Si la date FIN est > à la date DBT, l'heure FIN peut être < ou >. Et l'ACTIVATION est donc OK. C'est l'un des points qui m'intéressait.
PROBLEME à régler:
Il suffit que l'un des éléments de la date FIN soit > à l'un des éléments de la date DBT pour avoir activation. (ex.: Si le jour FIN est > au jour DBT, il se fout du mois et ACTIVATION)
Si la date Fin = date DBT, que l'heure FIN soit > ou < à l'heure DBT il n'y a pas d'activation.
voila, je vais continuer à regarder çà
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 mai 2005 à 16:04
10 mai 2005 à 16:04
ah d'accord... dans ce cas oui, la suite des if ne va pas en effet.
Est-ce que ca ca irai ? :
Voilà, c'est un algo tres lourd mais qui peut marcher, cependant je n'ai pas intégré l'heure car trop long et pas que ca a faire.
LA solution serait plutot de transformer tes deux date en secondes et comparer les résultat !
C'est tout de suite plus simple et plus rapide... si c'est bien ca que tu veux !
++
Est-ce que ca ca irai ? :
si ( jour > jour_deb ) alors si ( mois >= mois_deb ) alors si ( annee >= annee_deb ) alors truc = true; sinon truc = false; fsi sinon si ( annee > annee_deb ) alors truc = true; sinon truc = false; fsi fsi sinon si ( jour == jour_deb ) alors si ( mois > mois_deb ) alors si ( annee >= annee_deb ) alors truc = true; sinon truc = false; fsi sinon si ( mois <= mois_deb ) alors si ( annee > annee_deb ) alors truc = true; sinon truc = false; fsi fsi sinon si ( mois > mois_deb ) alors si ( annee >= annee_deb ) alors truc = true; sinon truc = false; fsi sinon si ( annee > annee_deb ) alors truc = true; sinon truc = false; fsi fsi fsi
Voilà, c'est un algo tres lourd mais qui peut marcher, cependant je n'ai pas intégré l'heure car trop long et pas que ca a faire.
LA solution serait plutot de transformer tes deux date en secondes et comparer les résultat !
C'est tout de suite plus simple et plus rapide... si c'est bien ca que tu veux !
++
sam3000
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
144
10 mai 2005 à 16:14
10 mai 2005 à 16:14
ahh, ces listes de codes! trop long et lent!
mais la proposition de "kij_82" est excellente!
tu pourra utiliser la formule (c'est pas trop exact de point de vu logique, mais ça fonctionne tres bien):
mais la proposition de "kij_82" est excellente!
tu pourra utiliser la formule (c'est pas trop exact de point de vu logique, mais ça fonctionne tres bien):
instant_debut=((((((annee_debut*12)+mois_debut)*31+jours_debut)*24+heure_debut)*60+minute_debut)*60+seconde_debut) instant_fin=((((((annee_fin*12)+mois_fin)*31+jours_fin)*24+heure_fin)*60+minute_fin)*60+seconde_fin) instant_systeme=((((((annee_systeme*12)+mois_systeme)*31+jours_systeme)*24+heure_systeme)*60+minute_systeme)*60+seconde_systeme) valide=(instant_systeme>instant_debut) && (instant_systeme<instant_fin)
nrobin
Messages postés
49
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
22 avril 2008
1
10 mai 2005 à 16:57
10 mai 2005 à 16:57
Ma question s'adresse à kij_82 en particulier.
Quand tu dis "truc=true" ou "truc=false", tu parles de quoi?
C'est toujours le même truc dans tous les cas?
Est-ce que ton "truc=true" correspond à mon alert ("ACTIVATION"); et "truc=false" à mon alert ("DEFAUT");?????
Quand tu dis "truc=true" ou "truc=false", tu parles de quoi?
C'est toujours le même truc dans tous les cas?
Est-ce que ton "truc=true" correspond à mon alert ("ACTIVATION"); et "truc=false" à mon alert ("DEFAUT");?????