JavaScriptを使用した時刻変換のハッカランクの解法


  1. 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"
  1. 時間の加算: 問題: "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"

これらは一部の時刻変換の例ですが、ハッカランクの問題に対する解法として役立つことがあります。他にも様々な時刻変換のシナリオが存在し、それぞれに適した方法があります。具体的な要件に基づいて適切な解法を選択することが重要です。