从 24 小时制转换开始时删除零
Removing Zero from Beginning of 24 Hour Time conversion
这是关于从 12 小时格式到 military/24-hour 时间的时间转换问题。
标准输入:07:05:45PM
预期输出:19:05:45
standard/actual 输出:019:05:45
问题在于输出开头的零 ^ 。
我尝试将 parseInt()
设置为十进制数字系统的基数为 10,但这没有任何效果。
这是以下代码的结果:
function main() {
var time = readLine();
var hours = parseInt(time.substr(0, 2), 10);
var minutes = parseInt(time.substr(3,5));
var seconds = parseInt(time.substr(6,8));
if ( time.indexOf('AM') !== -1 && hours === 12) {
time = time.replace('12', '00');
}
if (time.indexOf('PM') !== -1 && hours < 12) {
time = time.replace(hours, (hours + 12));
}
time = time.replace(/(AM|PM)/g, '');
console.log(time);
}
如有任何帮助,我们将不胜感激!
您可以只重建字符串而不是使用替换。因为您在您的示例中使用了 replace,所以您只是将 7 替换为 19。如果您遇到 12:12:12.
这样的时间,使用 replace 也会导致问题
例如。
function main() {
var time = readLine();
var hours = parseInt(time.substr(0, 2), 10);
var minutes = time.substr(3,5);
var seconds = time.substr(6,8);
if ( time.indexOf('AM') !== -1 && hours === 12) {
hours = 0;
}
else if (time.indexOf('PM') !== -1 && hours < 12) {
hours += 12;
}
time = (hours < 10 ? "0" + hours : hours) + ':' + minutes + ':' + seconds;
console.log(time);
}
这是关于从 12 小时格式到 military/24-hour 时间的时间转换问题。
标准输入:07:05:45PM
预期输出:19:05:45
standard/actual 输出:019:05:45
问题在于输出开头的零 ^ 。
我尝试将 parseInt()
设置为十进制数字系统的基数为 10,但这没有任何效果。
这是以下代码的结果:
function main() {
var time = readLine();
var hours = parseInt(time.substr(0, 2), 10);
var minutes = parseInt(time.substr(3,5));
var seconds = parseInt(time.substr(6,8));
if ( time.indexOf('AM') !== -1 && hours === 12) {
time = time.replace('12', '00');
}
if (time.indexOf('PM') !== -1 && hours < 12) {
time = time.replace(hours, (hours + 12));
}
time = time.replace(/(AM|PM)/g, '');
console.log(time);
}
如有任何帮助,我们将不胜感激!
您可以只重建字符串而不是使用替换。因为您在您的示例中使用了 replace,所以您只是将 7 替换为 19。如果您遇到 12:12:12.
这样的时间,使用 replace 也会导致问题例如。
function main() {
var time = readLine();
var hours = parseInt(time.substr(0, 2), 10);
var minutes = time.substr(3,5);
var seconds = time.substr(6,8);
if ( time.indexOf('AM') !== -1 && hours === 12) {
hours = 0;
}
else if (time.indexOf('PM') !== -1 && hours < 12) {
hours += 12;
}
time = (hours < 10 ? "0" + hours : hours) + ':' + minutes + ':' + seconds;
console.log(time);
}