utilitaire javascript des RDVs et autres délais version 4

Transcription

utilitaire javascript des RDVs et autres délais version 4
Utilitaire JavaScript des RDVs
et autres Délais version 4.0
J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga
+243 - 851278216 - 899508675 - 995624714 - 902263541 813572818
La dernière révision de ce texte est disponible sur CD.
Voici le code source de la version 4.0 d’un petit utilitaire JavaScript
(EcmaScript) pour calculer et fixer automatiquement un RDV précis
ou des RDVs programmés (schedule) en fonction de :
1. la date de départ que vous lui précisez,
2. l’échéance en
a.
b.
c.
d.
e.
f.
g.
jours,
semaines,
mois,
années,
heures,
minutes,
secondes,
3. la date approximative du RDV,
4. Les jours de semaine préférés,
5. tout cela accommodé au jour de la semaine que vous souhaitez
pour le RDV.
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
Le dernier RDV calculé est en haut :
Le code source du programme :
<html><head><meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" />
<base target="_top">
<title>Utilitaire de RDVs et autres délais V4.0</title>
<meta content="30 days" name=Revisit-after>
<meta name=ROBOTS content="INDEX,FOLLOW">
<meta http-equiv=Page-Enter content="RevealTrans(Duration=3,Transition=23)">
<meta http-equiv=Page-Exit content="RevealTrans(Duration=3,Transition=23)">
<meta http-equiv=Content-Language content=fr-be>
<meta name=Title content="Logiciel des Réflexes pupillomoteurs|Médecine">
<meta name=Created content="Dimanche 10 mars 2019 - 14:46:28 (PM)">
<meta name=Modified content="Jeudi 09 mai 2019 - 11:50:22 (AM)">
<meta name=description content="Utilitaire de RDVs et autres délais">
<meta name=keywords content="Utilitaire de RDVs et autres délais,RDV,délais">
<meta name="author" content="Dr. Jean-Baptiste Dadet DIASOLUKA Nzoyifuanga
Luyalu (CNOM : 0866) - Ophtalmologiste">
<meta name="license" content="gratuit">
<meta name="author-address" content="[email protected]">
<meta name="author-site" content="http://diasmath.blogg.org">
<meta name="author-site2" content="http://www.amessi.org/diasoluka">
<meta name="author-site3" content="https://www.vk.com/diasoluyalu">
<div style="background:#F654F7;padding:5pt">
<style>
.d{width:35;border:solid #CD30E4 1pt;
background:#A4EBE0}
legend {font-weight:900;padding:5pt 20pt;border:solid #1C217A
2pt;background:#553632;color:#FFDD10}
</style>
<fieldset style="background:#C1A149">
<legend>DATE de RDV unique</legend>
Date de départ =<br>
<script>
document.write("<input "+
'style="background:#F8FEC5;width:350pt"'+
' class="idated" '+
`placeholder = "Date départ [${new Date()}]"`+
` onclick="fJdate(this)" ondblclick='value=""'`+
`title="Click=Date actuelle | DblClick=Effacer |`+
` Format Date = DD MonthName Fullyear">`);
</script>
<br><br><fieldset title="« Delais » ou « Date approximative du RDV »"
style="background:#DDE9FF;border-radius:10px;
border:solid #A917F1 2pt;width:325pt">
RDV dans...<br>
<input class="d" id="j"> jours |
<input class="d" id="s"> semaines |
<input class="d" id="m"> mois |<br>
jeudi 9 mai 2019
- 2 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
<input
<input
<input
<input
<input
class="d"
class="d"
class="d"
class="d"
class="d"
Calcul des RDVs, version 3
id="a"> ans |
id="h"> heures |
id="min"> minutes |<br>
id="sec"> secondes |
id="ms"> millisecondes
<script>
document.write("<input "+
'style="background:#F8FEC5;width:350pt"'+
' class="idater" '+
`placeholder = "Date approx RDV [${new Date()}]"`+
` onclick="fJdate(this)" ondblclick='value=""'`+
`title="Click=Date actuelle | DblClick=Effacer |`+
` Format Date = DD MonthName Fullyear">`);
</script>
<br><br>Jour de la Sem [0=Dim, 1=Lun, *=Auj],
<br>Par Défaut = Samedi.
<input title="Jour de semaine souhaité"
class="d" id="js" onClick="value=''"
onKeyUp="javascript:fsjs()">
<input id="sjs"
title="Jour de semaine souhaité, spécifiez dans la case de gauche">
</fieldset>
<button onclick="fgo()" style="padding:8pt;
background:#8ED6FE;border:groove red">
Calculer La Date du RDV
</button>
<span style="float:right">
| Dernière mise à jour = <script>document.write(new
Date(document.lastModified).toLocaleString())</script>
</span>
</fieldset>
<hr>
<fieldset style="background:#C1A149">
<legend>RDVs réguliers / programmés (Schedule)</legend>
<fieldset
title="« Delais » ou « Date approximative du RDV »"
style="background:#DDFFE9;border-radius:10px;
border:solid #A917F1 2pt;width:325pt">
Nombre de rencontres...&nbsp;
<input class="d" id="nj"> fois/séances<br>
<span title="séparés par une virgule sans espaces">
Jours,de,rencontre,dans,semaine (0=Dim, 1=Lun)<br>
<input class="d" id="jsrdv"
style="width:70pt;text-align:center">
</span>
</fieldset>
<button onclick="fgo(1)" style="padding:8pt;
background:#8EFED6;border:groove red">
Calculer Les Dates des RDVs Multiples
</button>
</fieldset>
</div>
<hr>
<fieldset style="background:#E1A6FB">
<legend>RÉSULTATS</legend>
jeudi 9 mai 2019
- 3 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
Date Calculée du RDV<br>
<input class="rdate"
style="background:#FDF9EE;width:500">
<br><br>
<div class=outp title="Dates de RDV"
style="padding:10;width:356pt;border:solid #976D86 2pt;
background:#B4E9FE;color:#041160"></div>
</fieldset>
<script type="text/javascript">
let cptr=0, iDate, oStg, rdate;
const sem=[
"Dimanche","Lundi", "Mardi", "Mercredi",
"Jeudi", "Vendredi", "Samedi","Dimanche"
];
const mois=[
"Janvier","Février","Mars","Avril","Mai",
"Juin","Juilet","Août","Septembre","Octobre",
"Novembre","Décembre"
];
function fgo(p){
if(!iDate) {
document.querySelector(".idated").value = new Date();
}
iDate=new Date(
document.querySelector(".idated").value
);
fsjs();
outp=document.querySelector(".outp");
oStg="DATE DÉPART = ".padEnd(48,".");
oStg+=sem[iDate.getDay()]+" , "+iDate.getDate()+
" "+mois[iDate.getMonth()]+" "+
iDate.getFullYear()+
"<br>";
oStg+=iDate.toLocaleString() +
` . <span style="background:white" title="#RDV calculé">[`+
++cptr +`]</span>`;
let dj = 1*document.getElementById("j").value +
(document.getElementById("s").value)*7
let
let
let
let
let
let
dm
da
dh
dmin
dsec
dms
=
=
=
=
=
=
1*document.getElementById("m").value
1*document.getElementById("a").value
1*document.getElementById("h").value
1*document.getElementById("min").value
1*document.getElementById("sec").value
1*document.getElementById("ms").value
if(!document.querySelector(".idater").value){
var rdate=new Date(
iDate.getFullYear()+da,
iDate.getMonth()+dm,
jeudi 9 mai 2019
- 4 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
iDate.getDate()+dj,
iDate.getHours()+dh,
iDate.getMinutes()+dmin,
iDate.getSeconds()+dsec,
iDate.getMilliseconds()+dms
);
}
else rdate=new Date(
document.querySelector(".idater").value
);
let d=window.jc-rdate.getDay();
rfdate=new Date(
rdate.getFullYear(),
rdate.getMonth(),
rdate.getDate()+d,
rdate.getHours(),
rdate.getMinutes(),
rdate.getSeconds(),
rdate.getMilliseconds()
);
oStg+=`<div style="background:#FFA88E;padding-left:5">`+
"=".repeat(48)+"<br>"+
"Date calculée RDV = ".padEnd(48,".");
oStg+=sem[rdate.getDay()]+" , "+
rdate.getDate()+" "+
mois[rdate.getMonth()]+" "+
rdate.getFullYear();
oStg+="<br>"+rdate.toLocaleString()+"<br>";
document.querySelector(".rdate").value =
"#"+rdate.toGMTString()
oStg+="=".repeat(48)+"</div>"+
`<div style="padding-left:5;background:white">`;
let stg;
if(p==1)stg=`DATES R.D.V. multiples à dater du`;
else stg=`DATE ajustée R.D.V. >=>> `
oStg+="<b>"+stg.padEnd(44,".")+"</b>";
oStg+=sem[rfdate.getDay()]+" , " +
rfdate.getDate()+" "+
mois[rfdate.getMonth()]+" "+
rfdate.getFullYear();
if(p==1)fkine();
oStg += "<br>"+ rdate.toLocaleString()+"<br>";
oStg += `</div>`;
fline();
outp.innerHTML=oStg+outp.innerHTML;
}
function fkine(){
let jsemrdv=document.getElementById("jsrdv").value
jeudi 9 mai 2019
- 5 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
.split(",");
const jsl=jsemrdv.length,
fois=document.getElementById("nj").value;
for(let k=0;k<fois;k++){
let d= jsemrdv[k%jsl]-rfdate.getDay();
if(d<0)d+=7;
rfdate=new Date(
rfdate.getFullYear(),
rfdate.getMonth(),
rfdate.getDate()+d,//+(7*(parseInt(k/7))),
rfdate.getHours(),
rfdate.getMinutes(),
rfdate.getSeconds(),
rfdate.getMilliseconds()
);
oStg+="<br>"+ String(1*(k+1)).padStart(6,"*") +". "+
sem[rfdate.getDay()]+" , " +
rfdate.getDate()+" "+
mois[rfdate.getMonth()]+" "+
rfdate.getFullYear();
if(k==fois-1)document.querySelector(".rdate").value +=
" <=> "+ rfdate.toGMTString();
}
}
function fJdate(p){
iDate=new Date();
p.value=iDate;
}
function fsjs(){
let js=document.getElementById("js").value;
if(js=="*") window.jc=new Date().getDay();
else {
window.jc =
(document.getElementById("js").value) || 6;
document.getElementById("js").value = window.jc;
}
document.getElementById("sjs").value =
sem[window.jc];
}
function fline(){
const HEXA="0123456789ABCDEF";
let redH=HEXA[Math.round(Math.random()*15)]+
HEXA[Math.round(Math.random()*15)],
greenH=HEXA[Math.round(Math.random()*15)]+
HEXA[Math.round(Math.random()*15)],
blueH=HEXA[Math.round(Math.random()*15)]+
HEXA[Math.round(Math.random()*15)];
bcg=redH+greenH+blueH;
oStg+=
"<hr style='height:10;color:yellow;"+
"background:#"+bcg+"'>";
}
</script>
<body style="padding:5;border:solid #4DC98A;border-width:1pt 1pt 2pt
jeudi 9 mai 2019
- 6 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
1pt;height:386pt;width:530;background:#E2FCA6">
</body>
Exécution (étape de la saisie) :
jeudi 9 mai 2019
- 7 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
Exceptionnellement pour le dimanche, on peut le saisir comme « 0 »
(zéroième jour de la semaine), ou comme « 7 » (septième jour de la
semaine).
Exécution finale du programme (étape du output) :
jeudi 9 mai 2019
- 8 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
Exécution-II (autre output, après spécification de la date
approximative du RDV ou de la date [approximative]
d’anniversaire) :
jeudi 9 mai 2019
- 9 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
Nouveautés vs version précédente 3.0 :
On peut maintenant planifier (schedule) AUTOMATIQUEMENT un
nombre précis de RDVs (rencontres) en fonction des jours de la
semaine comme on le fait en kinésithérapie, orthoptique, sport,
musculation, activités dans l’église, et autres = RDVs réguliers /
programmés (Schedule).
On peut pour ce faire, choisir le jour de début des séances/rencontres.
I.
Exemple 1. : On veut 22 séances d’orthoptique ou de kiné ou tout
ce que vous voulez (lifting, musculation,…) à partir du vendredi
prochain, selon le schéma suivant :
I.
La première semaine des séances :
Mercredis (3), vendredis (5), samedi (6),
II. La deuxième semaine des séances :
Mardi (2) et jeudi (4),
III. La troisième semaine des séances :
Lundi(1), et dimanche (7),
Puis on recommence à partir de I.
jeudi 9 mai 2019
- 10 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
La saisie :
Comme on le voit ci-dessus, nos séances de kiné ou d’orthoptie sont
programmées selon le schedule rigoureux suivant des jours de
semaine : Successivement :
Donc :
3 (Mercredi), 5 (Vendredi), 6 (Samedi), 2 (Mardi), 4 (Jeudi), 1 (Lundi),
7(Dimanche)…
jeudi 9 mai 2019
- 11 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
puis on repart dans le même ordre jusqu’à un total du nombre de
séances préfixé, ici un total de 22 séances :
.
Pour lancer le programme pour cette fin, on clique sur
jeudi 9 mai 2019
- 12 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
Et voici le schedule que fournit le programme :
Vous voyez qu’à dater d’aujourd’hui (
)
jeudi 9 mai 2019
- 13 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
le prochain vendredi sera le
,
date à partir de laquelle ou au-delà de laquelle doivent débuter les
22 séances.
La première séance devant avoir lieu le premier mercredi après ce
vendredi-là, est donc le
Le schedule automatique fourni par le programme est ci-haut.
II.
Exemple 2. : On veut 10 séances d’orthoptique ou de kiné ou tout
ce que vous voulez (lifting, musculation,…) à partir du même jour
de semaine qu’aujourd’hui (jeudi : on saisit « astérisque *») et 20
jours à dater d’aujourd’hui, selon le schéma suivant : Lundi (1),
vendredi (5) et dimanche (0) :
Et on lance l’exécution du programme en cliquant sur le bouton cidessous :
jeudi 9 mai 2019
- 14 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
Et le programme nous donne :
III.
Exemple 3. : On veut 20 séances d’orthoptique ou de kiné ou
tout ce que vous voulez (lifting, musculation,…) à partir du
mercredi le plus proche de la date du 20 juin 2019, selon le
schedule suivant :
Jeudi (4), Lundi (1), Samedi (6) et Vendredi (5) :
jeudi 9 mai 2019
- 15 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
Boîte de saisie dans laquelle nous spécifions la date approximative du
début des séances, et le jour de départ dans la semaine :
Boîte de saisie dans laquelle nous spécifions le nombre de séances ou
de RDV (ici 10 fois), et l’ordre des jours de semaine (pas
nécessairement dans la même semaine) :
Exécution :
Le mercredi le plus proche de la date approximative fixée pour le
début 20 juin 2019, est le mercredi 19 juin 2019.
La première séance doit avoir lieu un jeudi, comme spécifié dans la
liste des jours de semaine :
jeudi 9 mai 2019
- 16 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
Ci-après, le programme complet des 10 séances :
Kinshasa, le 9 mai 2019 (2:15:01 PM).
Mots-clés :
calcul,
RDV,
schedule,
kinésithérapie,
orthoptique, musculation, échéances, séances,
délais, automatique, automatiquement, calculer,
rendez-vous, jour de la semaine, date de départ,
date de rendez-vous, javascript, ecmascript,
date ajustée de RDV, date calculée de RDV, date
calculée du RDV, date calculée RDV
jeudi 9 mai 2019
- 17 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
DIASOLUKA Nz. Luyalu
Docteur en Médecine, Chirurgie & Accouchements (1977),
CNOM : 0866 - Spécialiste en ophtalmologie (1980)
Études humanités : Scientifique - Mathématiques & Physique.
Informaticien-amateur, Programmeur et WebMaster.
Chercheur indépendant, autonome et autofinancé,
bénévole, sans aucun conflit d’intérêt ou liens
d'intérêts ou contrainte promotionnelle avec qui qu’il
soit ou quelqu’organisme ou institution / organisation
que ce soit, étatique, paraétatique ou privé, industriel ou
commercial en relation avec le sujet présenté.
+243 - 851278216 - 899508675 - 991239212 - 902263541 - 813572818
[email protected]
Autre Lecture :
https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-La-Creation
D’autres publications pouvant aussi intéresser :
• https://www.scribd.com/document/377036251/Le-Dosage-Des-Medicaments-enCac-Cas
• https://www.scribd.com/document/377035454/Le-Hasard-Des-ThermometresNon-contact-a-Infrarouge
• https://www.scribd.com/document/376222482/Petite-Introduction-Aux-FonctionsJavaScript
• https://www.scribd.com/document/376221919/La-Foi-en-Jesus-Christ-Pour-QuoiFaire
• https://www.scribd.com/document/375689778/Lacuite-visuelle-angulaire
• https://www.scribd.com/document/375349851/La-variable-This
• https://www.scribd.com/document/375024162/Fonctions-Imbriquees-en-JS
• https://www.scribd.com/document/374789297/Format-Interne-Des-Objets-
jeudi 9 mai 2019
- 18 / 19 -
2:15:01 PM
J.D.B. DIASOLUKA Nz. Luyalu
Calcul des RDVs, version 3
JavaScript
• https://www.scribd.com/document/374788758/Iterations-en-JavaScript
• https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-LaCreation
• https://www.scribd.com/document/374597969/Nouvelle-Formule-d-IMC-indicede-doduite-Selon-Dr-Diasoluka
• https://www.scribd.com/document/373847209/Property-Descriptors
• https://www.scribd.com/document/373833282/l-Objet-Global-Window
• https://www.scribd.com/document/372665249/Javascript-Tome-II
• https://www.scribd.com/document/355291488/motilite-oculaire-2
• https://www.scribd.com/document/355291239/motilite-oculaire-I
• https://www.scribd.com/document/355290248/Script-d-Analyses-Des-ReflexesPupillomoteurs
• https://www.scribd.com/document/321168468/Renseignements-Id-etAnthropometriques
• https://www.scribd.com/document/320856721/Emission-31-Jul-2016
• https://www.scribd.com/document/318182982/Complication-Visuelle-duTraitement-de-La-Malaria
• https://www.scribd.com/document/318180637/Rapport-Entre-Oxymetrie-Et-TypeRespiration
• https://www.scribd.com/document/315746265/Classification-Des-Medicaments
• https://www.scribd.com/document/315745909/Incongruences-Heresies-etHeterodoxies-de-la-Notion-de-Laboratoire
• https://www.scribd.com/document/315745725/Rapport-Entre-Oxymetrie-Et-TypeRespiration
jeudi 9 mai 2019
- 19 / 19 -
2:15:01 PM