Langsung ke konten utama

Kalkulator Selisih Tanggal gratis

Hitung selisih tepat antara dua tanggal — tahun, bulan, hari, minggu, hari kerja (tidak termasuk akhir pekan), jam, dan menit.

Berfungsi offline setelah dimuat

Preset cepat

Pilih kedua tanggal untuk melihat perbedaannya.

Penggunaan umum

  • Hitung Hari Sampai Tanggal Jatuh TempoHitung mundur hingga tanggal jatuh tempo bayi: temukan persis berapa minggu, hari, dan jam sampai hari besar.
  • Hari Sampai Liburan AndaHitung mundur ke perjalanan Anda dengan hari kerja, total hari, dan minggu tersisa untuk tujuan perencanaan.
  • Hari Kerja Sampai Batas Waktu ProyekHitung jumlah hari kerja yang tepat (tidak termasuk akhir pekan) antara hari ini dan batas waktu proyek.
  • Hitung Hari Peringatan BersamaCari tahu persis berapa hari, bulan, dan tahun Anda bersama seseorang yang istimewa.
  • Kalkulator Perbedaan Usia Antara Dua OrangHitung perbedaan usia yang tepat antara dua ulang tahun: tahun, bulan, dan hari terpisah.

Cara kerja

Semua perhitungan berjalan sepenuhnya di browser menggunakan aritmetika UTC tulisan tangan — tanpa library eksternal, tanpa permintaan server. Alat ini mengurai string YYYY-MM-DD menjadi komponen kalender, menghitung selisih menggunakan stempel waktu milidetik Date.UTC() untuk menghindari pergeseran DST, dan mengulangi hari-demi-hari untuk menghitung hari kerja Senin–Jumat.

  1. 1
    Penguraian tanggal yang aman
    Setiap string tanggal divalidasi dengan regex lalu direkonstruksi via Date.UTC() — bukan new Date(string) — sehingga pengguna di barat UTC tidak pernah melihat pergeseran hari yang disebabkan oleh interpretasi zona-waktu-lokal browser untuk masukan tanggal-saja.
  2. 2
    Pengurangan milidetik UTC
    Kedua tanggal kalender dikonversi menjadi stempel waktu tengah-malam UTC dengan Date.UTC(y, m, d). Pembagian bilangan bulat dengan 86.400.000 ms memberikan jumlah hari penuh yang tepat dan kebal terhadap transisi waktu musim panas (DST), yang jika tidak bisa membuat satu hari tampak berdurasi 23 atau 25 jam.
  3. 3
    Rincian kalender dan jumlah hari kerja
    Dekomposisi tahun/bulan/hari tulisan tangan menangani ketidakteraturan panjang bulan (meminjam hari dari bulan sebelumnya bila perlu). Loop terpisah melangkah melalui setiap hari UTC di antara kedua tanggal dan menambah penghitung hanya untuk Senin–Jumat (getUTCDay() !== 0 atau 6), menghasilkan total hari kerja yang tepat terlepas dari lokal.
  4. 4
    Hasil ditampilkan dalam semua satuan
    Total diformat dengan toLocaleString() menggunakan lokal halaman untuk pengelompokan digit yang sadar-lokal, lalu ditampilkan sekaligus sebagai tahun/bulan/hari, total hari, hari kerja, minggu, jam, dan menit. Pasangan tanggal saat ini ditulis ke URL via history.replaceState sehingga hasil apa pun bisa ditandai atau dibagikan sebagai tautan langsung.

Alat terkait

Pertanyaan yang sering diajukan