在不使用任何库的情况下获得一天内的总工作时间 JavaScript



好吧,我是这个页面上的新手,如果我的英语很丑,请原谅我,但我尽我所能来交流自己:)
我正在做一个可以计算一天总工作时间的页面,这就是我直到 15/06/17 才得到的 我的页面注意:我的页面
中使用的语言是意大利语,很抱歉。

乔诺 = 天

我的问题是我无法解决名为"Calcola"这就是我得到的按钮的功能:(我不知道如何在这里编写代码,所以请使用Google工具查看"我的页面">
上的代码)

问题在最后称为:

function differenza()  
{       
problem...   
}

我希望这已经清楚了,重复对不起我的英语,我正在提高它。

@masterNixe谢谢大家,我做了这个,请 试试吧

它与您的示例略有不同@masterNixe但谢谢:D
这是我的页面,如果
有人发现错误,请告诉我

<script>
function differenzaTotale() {
var i;
for (i = 1; i < document.getElementById("tabella").rows.length; i++) {
/*if (document.getElementById("Giorno" + i + "EntrataMinuti").value == ""){
document.getElementById("Giorno" + i + "EntrataMinuti").value = "00";
}
else if (document.getElementById("Giorno" + i + "UscitaMinuti").value == ""){
document.getElementById("Giorno" + i + "UscitaMinuti").value = "00";
}
else if (document.getElementById("Giorno" + i + "EntrataOra").value == ""){
document.getElementById("Giorno" + i + "EntrataOra").value = "00";
}
else if (document.getElementById("Giorno" + i + "UscitaOra").value == ""){
document.getElementById("Giorno" + i + "UscitaOra").value = "00";
}
else if (document.getElementById("Giorno" + i + "PausaMinuti").value == ""){
document.getElementById("Giorno" + i + "PausaMinuti").value = "00";
}*/
differenzaRiga(i);
}
}
function differenzaRiga(i) {
var risultato = primoControllo(i);
if (risultato == false){
return false;
}
/* calcolo */
var minDiUscita = risultato.minDiUscita;
var minDiEntrata = risultato.minDiEntrata;
var minDiPausa = risultato.minDiPausa;
/*console.log(minDiUscita + '-'+ minDiEntrata +'-'+ minDiPausa);*/
var differenzaInMin = minDiUscita - minDiEntrata - minDiPausa;
var oreFatte = Math.floor(differenzaInMin / 60);
var minutiFatti = differenzaInMin % 60;
/*console.log(minDiUscita);
console.log(minDiEntrata);
console.log(minDiPausa);
console.log(differenzaInMin);
console.log(oreFatte);
console.log(minutiFatti);*/
document.getElementById("Giorno" + i + "Totale").value = (pad(oreFatte) + ":" + pad(minutiFatti));
}
function pad(n) { // funzione che mi aiuta a sistemare i numeri prima dello zero mettendogli uno 0 davvanti es: 7:5 -> 07:05  NON HA CHE VEDERE CON IL CALCOLO è SOLO ESTETICA
return (n < 10) ? ("0" + n) : n;
}
document.getElementById('body').onkeypress = function (e) {//funzione che mi acceta l'invio come schiacciatoredi bottone
if (!e) e = window.event;
var keyCode = e.keyCode || e.which;
/*console.log(keyCode);*/
if (keyCode == '13') {
differenzaTotale();
}
}
function primoControllo(i) {
if (document.getElementById("Giorno" + i + "EntrataOra").value == "") {
return false;
}
else if (document.getElementById("Giorno" + i + "UscitaOra").value == "") {
return false;
}
if (document.getElementById("Giorno" + i + "UscitaMinuti").value == "") {
var minutiUscita = 0;
}
else {
var minutiUscita = parseInt(document.getElementById("Giorno" + i + "UscitaMinuti").value);
}
if (document.getElementById("Giorno" + i + "EntrataMinuti").value == "") {
var minutiEntrata = 0;
}
else {
var minutiEntrata = parseInt(document.getElementById("Giorno" + i + "EntrataMinuti").value);
}
if (document.getElementById("Giorno" + i + "PausaMinuti").value == "") {
var minutiPausa = 0;
}
else {
var minutiPausa = parseInt(document.getElementById("Giorno" + i + "PausaMinuti").value);
}
if (document.getElementById("Giorno" + i + "PausaMinuti").value > "60") {
document.getElementById("Giorno" + i + "PausaMinuti").value = "60";
var minutiPausa = 60;
}
var minDiUscita = document.getElementById("Giorno" + i + "UscitaOra").value * 60 + minutiUscita; // math -> 16*60 + 20
var minDiEntrata = document.getElementById("Giorno" + i + "EntrataOra").value * 60 + minutiEntrata; // math -> 7*60 + 30
var minDiPausa = minutiPausa; // 45
if (minDiUscita < minDiEntrata) {
window.alert("ATTENZIONE: le ore di entrata sono maggiori a quelle di uscita");
return false;
}
if (minDiUscita == minDiEntrata) {
window.alert("ATTENZIONE: le ore di entrata sono uguali a quelle di uscita");
return false;
}
var risultato = {
minDiUscita: minDiUscita,
minDiEntrata: minDiEntrata,
minDiPausa: minDiPausa
};
return risultato;
}
</script>

最新更新