Ciao,
ci sto sbattendo la testa da un pò ma non ne vengo a capo. Ho la necessità di calcolare in automatico i giorni che intercorrono tra due date.
Ho il seguente script, ma affinchè si possa avere il calcolo è necessario cliccare sul bottone calcola.
Come posso fare affinchè il calcolo dei giorni avvenga in automatico dopo aver compilato i campi Dal-Al?
codice HTML:
<form name="DiffG">
Calcolo dei giorni che intercorrono tra due date
<br>
Dal<br>
<input id="DaG" name="DaG">/
<input id="DaM" name="DaM">/
<input id="DaA" name="DaA">
al <br>
<input id="AG" name="AG" size="20">/
<input id="AM" name="AM" size="20">/
<input id="AA" name="AA" size="20">
<input type="button" value="Calcola" onClick="DiffDate();" id="button1" name="button1"></font>
N.giorni<br>
<input id="NG" name="NG">
</form>
<script>
//fUNZIONE DI CALCOLO DIFFERENZA GIORNI FRA DUE DATE
function DiffDate() {
DD=parseInt(document.DiffG.DaG.value)
MM=parseInt(document.DiffG.DaM.value)
YY=parseInt(document.DiffG.DaA.value)
HR=0
MN=0
SS=0
with (Math) {
HR = HR + (MN / 60) + (SS / 3600);
GGG = 1;
if( YY < 1582 ) GGG = 0;
if( YY <= 1582 && MM < 10 ) GGG = 0;
if( YY <= 1582 && MM == 10 && DD < 5 ) GGG = 0;
JD = -1 * floor(7 * (floor((MM + 9) / 12) + YY) / 4);
S = 1;
if ((MM - 9)<0) S=-1;
A = abs(MM - 9);
J1 = floor(YY + S * floor(A / 7));
J1 = -1 * floor((floor(J1 / 100) + 1) * 3 / 4);
JD = JD + floor(275 * MM / 9) + DD + (GGG * J1);
JD = JD + 1721027 + 2 * GGG + 367 * YY - 0.5;
JD = JD + (HR / 24);
}
DataStart=JD
DD=parseInt(document.DiffG.AG.value)
MM=parseInt(document.DiffG.AM.value)
YY=parseInt(document.DiffG.AA.value)
with (Math) {
HR = HR + (MN / 60) + (SS / 3600);
GGG = 1;
if( YY < 1582 ) GGG = 0;
if( YY <= 1582 && MM < 10 ) GGG = 0;
if( YY <= 1582 && MM == 10 && DD < 5 ) GGG = 0;
JD = -1 * floor(7 * (floor((MM + 9) / 12) + YY) / 4);
S = 1;
if ((MM - 9)<0) S=-1;
A = abs(MM - 9);
J1 = floor(YY + S * floor(A / 7));
J1 = -1 * floor((floor(J1 / 100) + 1) * 3 / 4);
JD = JD + floor(275 * MM / 9) + DD + (GGG * J1);
JD = JD + 1721027 + 2 * GGG + 367 * YY - 0.5;
JD = JD + (HR / 24);
}
DataEnd=JD
document.DiffG.NG.value=DataEnd-DataStart;
}
</script>
Grazie