时间向上计数器

时间:2017-11-01 19:29:14

标签: javascript loops timer nested clock

我对编程很陌生,我正在学习的一个教程类给了我一个创建一个javascript脚本来显示一天中所有秒的任务。

我自己用一些基本代码完成了作业:

function Time() {
  var hours = 12;
  var minutes = 0;
  var seconds = 0;
  var amorpm = 1;
  var counter = 0;
  var endtime = 86400;
  while (counter < endtime) {
    if (amorpm <= 12) {
      document.writeln(fixTime(hours) + ":" + fixTime(minutes) + ":" + fixTime(seconds) + "AM");
    } else if (amorpm > 12) {
      document.writeln(fixTime(hours) + ":" + fixTime(minutes) + ":" + fixTime(seconds) + "PM");
    } else {
      break;
    }

    if (seconds < 59) {
      seconds++;
    } else {
      if (minutes < 59) {
        minutes++;
      } else {
        ampm++;
        if (hours < 12) {
          hours++;
        } else {
          hours = 1;
        }
        minutes = 0;
      }
      seconds = 0;
    }
    counter = counter + 1;
  }
}

function fixTime(i) {
  if (i < 10) {
    i = "0" + i
  };
  return i;
}

输出完全正确。

然而,其中一个标准是使用“嵌套循环”,对于我的生活,我有点难以弄清楚如何用嵌套循环做同样的事情。

我猜我可以使用for循环用i ++ - s计算秒数和分钟数,或者几个while循环数,但所有这些对我来说似乎都是不必要的包袱。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

您可以为 小时 分钟 for loop >秒 每个并嵌套它们。

AM / PM 可以花费mod 12小时。

for (let h = 0; h < 24; h++) {
  for (let m = 0; m < 60; m++) {
    for (let s = 0; s < 60; s++) {
      // 24 hour
      document.write(`<div>${h.toString().padStart(2, "0")}:${m.toString().padStart(2, "0")}:${s.toString().padStart(2, "0")}</div>`);
      // 12 hour am/pm
      //document.write(`<div>${(h % 12).toString().padStart(2, "0")}:${m.toString().padStart(2, "0")}:${s.toString().padStart(2, "0")} ${h < 12 ? "AM" : "PM"}</div>`);
    }
  }
}

答案 1 :(得分:0)

使用AM和PM的12小时时钟。您可以创建4个for循环。每个小时,分钟和秒各3个,从AM切换到PM并嵌套它们。

for (var min = 0; min <= 59; min++) { //Loop for Min Count
  for (var sec = 0; sec <= 59; sec++) { //Loop for seconds count
    console.log("12" + ":" + (min < 10 ? "0" + min : min) + ":" + (sec < 10 ? "0" + sec : sec) + " AM");

  }
}
for (var i = 0; i < 2; i++) { //loop to switch from AM to PM
  for (var hour = 1; hour <= 12 - i; hour++) { //Loop for Hour Count
    for (var min = 0; min <= 59; min++) { //Loop for Min Count
      for (var sec = 0; sec <= 59; sec++) { //Loop for seconds count
        if (i == 0 && hour != 12) {
          console.log((hour < 10 ? "0" + hour : hour) + ":" + (min < 10 ? "0" + min : min) + ":" + (sec < 10 ? "0" + sec : sec) + " AM");
        } else {
          console.log((hour < 10 ? "0" + hour : hour) + ":" + (min < 10 ? "0" + min : min) + ":" + (sec < 10 ? "0" + sec : sec) + " PM");
        }
      }
    }
  }
}