Berapa detik lagi sampai besok?
Buat sebuah fungsi getSecondsToTomorrow()
yang mengembalikan jumlah detik yang tersisa hingga esok hari.
Sebagai contoh, jika sekarang 23:00
, maka:
getSecondsToTomorrow() == 3600
P.S. Fungsi haruslah berjalan untuk semua hari, sehingga “hari ini” tidak bisa dalam bentuk hard-code.
Untuk mendapatkan jumlah milidetik hingga besok, kita bisa mendapatkannya melalui pengurangan tanggal hari ini dengan “besok 00:00:00”
Pertama, kita tentukan “besok”, dan kemudian lakukan perhitungan:
function getSecondsToTomorrow() {
let sekarang = new Date();
// besok
let besok = new Date(now.getFullYear(), now.getMonth(), now.getDate()+1);
let beda = besok - sekarang; // beda dalam milidetik
return Math.round(beda / 1000); // ubah ke detik
}
Solusi alternatif:
function getSecondsToTomorrow() {
let sekarang = new Date();
let jam = sekarang.getHours();
let menit = sekarang.getMinutes();
let detik = sekarang.getSeconds();
let detikTotalHariIni = (jam * 60 + menit) * 60 + detik;
let detikTotalDalamSatuHari = 86400;
return detikTotalDalamSatuHari - detikTotalHariIni;
}
Harap diingat bahwa banyak negara menerapkan Daylight Savings Time (DST), sehingga memungkinkan ada hari dengan 23 atau 25 jam. Kita mungkin ingin melakukan perhitungan dengan cara yang berbeda untuk mereka.