时间递增计数器
Time upward counter
我对编程还很陌生,我正在学习的教程 类 给了我一个任务来创建一个 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;
}
并且输出完全正确。
但是,其中一个标准是使用 "nested loops",对于我来说,我有点难以弄清楚如何使用嵌套循环来做同样的事情。
我想我可以使用带有 i++-s 的 for 循环来计算秒数和分钟数,或者几个 while 循环,但所有这些对我来说似乎有点像不必要的包袱。
非常感谢任何帮助!
您可以创建 for loop
小时 、 分钟 和 秒 并嵌套它们。
您可以在 上午/下午 占用 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>`);
}
}
}
12 小时制,带上午和下午。您可以创建 4 个 for 循环。 3 表示小时、分钟和秒,1 表示从 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");
}
}
}
}
}
我对编程还很陌生,我正在学习的教程 类 给了我一个任务来创建一个 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;
}
并且输出完全正确。
但是,其中一个标准是使用 "nested loops",对于我来说,我有点难以弄清楚如何使用嵌套循环来做同样的事情。
我想我可以使用带有 i++-s 的 for 循环来计算秒数和分钟数,或者几个 while 循环,但所有这些对我来说似乎有点像不必要的包袱。
非常感谢任何帮助!
您可以创建 for loop
小时 、 分钟 和 秒 并嵌套它们。
您可以在 上午/下午 占用 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>`);
}
}
}
12 小时制,带上午和下午。您可以创建 4 个 for 循环。 3 表示小时、分钟和秒,1 表示从 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");
}
}
}
}
}