Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで現在の時刻を使用して最も近い時刻を作成する


問題

「HH:MM」形式で時間を表す文字列timeを受け取るJavaScript関数を作成する必要があります。

私たちの関数は、現在の数字を再利用することにより、次に近い時間を形成することになっています。 1桁を再利用できる回数に制限はありません。

たとえば、関数への入力が

入力

const time = '19:34';

出力

const output = '19:39';

出力の説明

数字1、9、3、4から選択する次に近い時刻は19:39で、これは5分後に発生します。これは23時間59分後に発生するため、19:33ではありません。

以下はコードです-

const time = '19:34';
const findClosestTime = (time = '') => {
   const [a, b, c, d] = [time[0], time[1], time[3], time[4]].map(x =>Number(x));
   const sorted = [a, b, c, d].sort((x, y) => x - y)
   const d2 = sorted.find(x => x > d)
   if (d2 > d) {
      return `${a}${b}:${c}${d2}`
   }
   const c2 = sorted.find(x => x > c && x <= 5)
   const min = Math.min(a, b, c, d)
   if (c2 > c) {
      return `${a}${b}:${c2}${min}`
   }
   const b2 = sorted.find(x => x > b && a * 10 + x <= 24)
   if (b2 > b) {
      return `${a}${b2}:${min}${min}`
   }
   const a2 = sorted.find(x => x > a && x <= 2)
   if (a2 > a) {
      return `${a2}${min}:${min}${min}`
   }
   return `${min}${min}:${min}${min}`
};
console.log(findClosestTime(time));

出力

19:39

  1. 「new」演算子を使用してJavaScriptコンストラクターを作成しますか?

    以下は、「new」演算子を使用してJavaScriptコンストラクターを作成するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <

  2. JavaScriptで時間文字列を修正する

    問題 「HH:MM:SS」形式の時間文字列を受け取るJavaScript関数を作成する必要があります。 しかし、それに加えて問題があり、多くのタイムストリングが壊れているため、MM部分が60を超え、SS部分も60を超える可能性があります。 この関数は、文字列に必要な変更を加えて、修正された新しい文字列を返す必要があります。 たとえば- "08:11:71" -> "08:12:11" 例 以下はコードです- const str = '08:11:71'; const rectifyTime = (str = '&#