riefuchi220 / poke

0 stars 0 forks source link

時間(分)を5または10で割り切れる時間に変更 #17

Open riefuchi220 opened 5 months ago

riefuchi220 commented 5 months ago

` function roundDownToNearestInterval(date, interval) { // 新しいDateオブジェクトを作成(元のDateオブジェクトを変更しないように) const newDate = new Date(date.getTime());

// 分を取得 const minutes = newDate.getMinutes();

// 切り捨ての間隔を設定 let roundedMinutes; if (interval === 1) { // 5分間隔に切り捨て roundedMinutes = Math.floor(minutes / 5) 5; } else { // 10分間隔に切り捨て roundedMinutes = Math.floor(minutes / 10) 10; }

// 切り捨てた分をセット newDate.setMinutes(roundedMinutes); newDate.setSeconds(0); // 秒を0にセット newDate.setMilliseconds(0); // ミリ秒を0にセット

return newDate; }

// テスト例 const date1 = new Date('2024-05-24T00:08:00'); const date2 = new Date('2024-05-24T00:11:00'); const date3 = new Date('2024-05-24T00:15:00');

console.log(roundDownToNearestInterval(date1, 1)); // 2024-05-24T00:05:00.000Z console.log(roundDownToNearestInterval(date2, 1)); // 2024-05-24T00:10:00.000Z console.log(roundDownToNearestInterval(date1, 2)); // 2024-05-24T00:00:00.000Z console.log(roundDownToNearestInterval(date2, 2)); // 2024-05-24T00:10:00.000Z console.log(roundDownToNearestInterval(date3, 2)); // 2024-05-24T00:10:00.000Z `