Torna agli scripts <<< BACK
/*###########################################################################################################################################
# Calculation Time
# Copyright (c)2009 Andrea Mirabella
# postmaster[at]andreamirabella.it
# http://www.andreamirabella.it/scripts.php?p=2
# License: LGPL
# Descrizione : Funzione per il calcolo della differenza tra 2 orari, passati come numeri reali (hh.mm).
# Description : Function to calculate time difference between two different hours, given as real numbers (hh.mm).
############################################################################################################################################*/
//################################# Prima di eseguire il calcolo controllare che il formato ora sia corretto ###########################################
function controlla_char(field) {
var stringa = document.getElementById(field).value;
var myregexp = /^(([0-1]?[0-9])|([2][0-4]))\.([0-5]?[0-9])(\.([0-5]?[0-9]))?$/; // controllo dell ora
if (myregexp.test(stringa) == false)
{
return false;
}
else {
return true;
}
}
//########################################################################################################################################################
function calcolo_ora() {
oI = document.getElementById('op').value; // Ora inizio inserita nella text-field op
oF = document.getElementById('oa').value; // Ora fine inserita nella text-field oa
if ( oI < oF ) { // Controlliamo che le ore iniziali siano precedenti a quelel finali altrimenti entrimo nell' else in fondo
oraI = Math.floor(oI); // Recuperiamo la parte intera dell'ora iniziale
oraF = Math.floor(oF); // Recuperiamo la parte intera dell'ora finale
minI_1 = (oI - Math.floor(oI))*100; // Ricaviamo i minuti dell'ora iniziale dal numero decimale sottraendo al numero la sua parte intera e moltiplicandola per 100 (es. ore 21.15 : (21.15 - 21)*100 = 15 minuti )
minF_1 = (oF - Math.floor(oF))*100;
minI = Math.round(minI_1); // Eliminiamo eventuali cifre decimali rimanenti dalla formula per il calcolo dei minuti.
minF = Math.round(minF_1);
diff_ora = oraF - oraI; // Calcoliamo la differenza tra le ore.
diff_min = minF - minI; // Calcoliamo la differenza tra i minuti.
if (diff_min < 0) { // Se la differenza tra i minuti è minore di zero, sottraiamo 1 dalla differenza delle ore e facciamo il complemento a 60 della differenza ( aggiungendo semplicemente 60 al risultato negativo).
diff_ora--;
diff_min = diff_min + 60;
}
if (diff_min <= 9) { // Se la differenza tra i minuti è minore = a 9 aggiungiamo uno 0 per una corretta visualizzazione es. 15.36 - 16.38 = 1.2 h -> aggiungiamo lo zero in modo che diventi 1.02 h
document.getElementById('otot').style.color='black';
document.getElementById('otot').style.borderColor='white';
document.getElementById('otot').value = (diff_ora + '.0' + diff_min); //Scriviamo il nostro risultato finale nella text-field otot
} else { // in tutti gli altri casi non aggiungiamo nulla perche la differenza tra i minuti è a 2 cifre.
document.getElementById('otot').style.color='black';
document.getElementById('otot').style.borderColor='white';
document.getElementById('otot').value = (diff_ora + '.' + diff_min); //Scriviamo il nostro risultato finale nella text-field otot
}
} else { //Se gli orari non coincidono visualizziamo un messaggio di errore tramite pop-up e scriviamo Err nella text-field otot
alert('ATTENZIONE!!! Gli orari non coincidono')
document.getElementById('otot').value = 'Err';
return false;
}
}