- 24時間形式から12時間形式への変換: 問題: "HH:MM"形式の24時間形式の時刻が与えられた場合、それを"HH:MM AM/PM"形式の12時間形式に変換する必要があります。
function convertTo12HourFormat(time) {
const [hours, minutes] = time.split(':');
let formattedHours = parseInt(hours);
let period = 'AM';
if (formattedHours >= 12) {
period = 'PM';
if (formattedHours > 12) {
formattedHours -= 12;
}
}
return `${formattedHours}:${minutes} ${period}`;
}
const time24Hour = '14:30';
const time12Hour = convertTo12HourFormat(time24Hour);
console.log(time12Hour); // 結果: "2:30 PM"
- 時間の加算: 問題: "HH:MM AM/PM"形式の時刻と、分数(例: 30分)が与えられた場合、時刻に分数を加算して新しい時刻を計算する必要があります。
function addMinutesToTime(time, minutesToAdd) {
const [time12Hour, period] = time.split(' ');
const [hours, minutes] = time12Hour.split(':');
let formattedHours = parseInt(hours);
let formattedMinutes = parseInt(minutes) + minutesToAdd;
if (formattedMinutes >= 60) {
formattedHours += Math.floor(formattedMinutes / 60);
formattedMinutes %= 60;
}
formattedHours %= 12;
if (formattedHours === 0) {
formattedHours = 12;
}
return `${formattedHours}:${formattedMinutes.toString().padStart(2, '0')} ${period}`;
}
const startTime = '9:45 AM';
const minutesToAdd = 75;
const endTime = addMinutesToTime(startTime, minutesToAdd);
console.log(endTime); // 結果: "11:00 AM"
これらは一部の時刻変換の例ですが、ハッカランクの問題に対する解法として役立つことがあります。他にも様々な時刻変換のシナリオが存在し、それぞれに適した方法があります。具体的な要件に基づいて適切な解法を選択することが重要です。