明日まで何秒?
重要度: 5
明日までの秒数を返すgetSecondsToTomorrow()
関数を生成してください。
たとえば、現在時が23:00
の場合
getSecondsToTomorrow() == 3600
追伸 関数はどの曜日でも機能する必要があります。「今日」はハードコーディングされません。
明日まであと何ミリ秒かを計算するには、現在の時刻から「明日の00:00:00」を引きます。
まず「明日」を生成し、その後実行します。
function getSecondsToTomorrow() {
let now = new Date();
// tomorrow date
let tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate()+1);
let diff = tomorrow - now; // difference in ms
return Math.round(diff / 1000); // convert to seconds
}
代替ソリューション
function getSecondsToTomorrow() {
let now = new Date();
let hour = now.getHours();
let minutes = now.getMinutes();
let seconds = now.getSeconds();
let totalSecondsToday = (hour * 60 + minutes) * 60 + seconds;
let totalSecondsInADay = 86400;
return totalSecondsInADay - totalSecondsToday;
}
多くの国では夏時間が存在することに注意してください。そのため、23時間または25時間の曜日が発生することがあります。このような曜日を個別に処理したい場合があります。