Kalkulator Usia — Usia Tepat dalam Tahun, Bulan & Hari
Kalkulator usia gratis: masukkan tanggal lahir Anda untuk mendapatkan usia tepat Anda dalam tahun, bulan, dan hari, ditambah total minggu, hari, jam, dan ulang tahun Anda berikutnya.
Kalkulator Usia
Anda lahir pada hari Monday
Ulang tahun berikutnya: 127 hari lagi (akan berusia 37)
Usia Anda dalam unit lain
Kemajuan hidup
Usia Anda terhadap rentang referensi 80 tahun yang bersifat ilustratif.
Dokumentasi
Apa itu kalkulator usia?
Kalkulator usia menemukan waktu yang tepat antara dua tanggal: tanggal lahir dan tanggal sasaran, biasanya hari ini. Hasilnya disajikan dalam tahun, bulan, dan hari, serta sebagai total berjalan dalam bulan, minggu, hari, jam, menit, dan detik. Usia juga dapat dihitung untuk tanggal pada masa lalu atau masa depan, yang menunjukkan berapa usia seseorang pada hari tersebut atau berapa usianya kelak.
Cara menghitung usia
Usia adalah selisih antara dua tanggal kalender. Ada dua cara yang benar untuk menyatakan selisih tersebut, dan keduanya berguna untuk tujuan yang berbeda.
Usia kalender (tahun, bulan, hari)
Ini adalah cara sehari-hari orang menyatakan usia, seperti "33 tahun, 4 bulan, dan 5 hari." Usia tersebut diperoleh melalui tiga langkah:
- Hitung tahun penuh yang telah berlalu sejak tanggal lahir.
- Dari ulang tahun terakhir, hitung bulan penuh yang telah berlalu.
- Setelah itu, hitung sisa harinya.
Langkah 3 menjadi rumit menjelang akhir bulan karena jumlah hari dalam setiap bulan berbeda. Seseorang yang lahir pada 31 Januari dan usianya diukur pada 1 Maret berusia 1 bulan dan 1 hari. Satu bulan setelah 31 Januari adalah 28 Februari (atau 29 Februari pada tahun kabisat), karena tidak ada 31 Februari. 1 Maret adalah satu hari setelahnya. Metode ini, yang kadang disebut aturan relativedelta berdasarkan pustaka Python yang memopulerkannya, menetapkan tanggal peringatan pada hari terakhir bulan yang lebih pendek agar hitungan hari tidak pernah menjadi negatif.
Total waktu yang telah berlalu (hari, jam, detik)
Untuk menghitung waktu hidup secara tepat, kedua tanggal diubah menjadi satu titik waktu, lalu selisihnya dihitung dalam hari penuh:
dengan d sebagai jumlah hari penuh, t sebagai tanggal target, dan b sebagai tanggal lahir, yang masing-masing dinyatakan sebagai jumlah milidetik, sedangkan pembaginya adalah jumlah milidetik dalam satu hari.
Kedua tanggal ditetapkan ke tengah malam UTC (Waktu Universal Terkoordinasi) sebelum pengurangan dilakukan. Ini mencegah perubahan waktu musim panas menambah atau mengurangi satu jam dan mengacaukan hitungan hari. Dari total hari tersebut, minggu dihitung dengan membagi hari dengan 7 lalu membulatkannya ke bawah. Jam, menit, dan detik diperoleh dengan mengalikan jumlah hari dengan 24, 1.440, dan 86.400.
Membagi total hari dengan 365 atau 365,25 menghasilkan perkiraan usia dalam tahun, tetapi tidak memperhitungkan tahun mana dalam rentang tersebut yang merupakan tahun kabisat. Penghitungan kalender yang dijelaskan di atas bersifat tepat. Gunakan usia kalender untuk menjawab "berapa usia saya." Gunakan total hari atau minggu untuk keperluan yang memerlukan waktu berlalu secara tepat, seperti mengatur waktu pemberian dosis obat atau menghitung mundur menuju suatu pencapaian.
Contoh perhitungan
Seseorang yang lahir pada 1 Januari 2000, dengan usia yang diukur pada 1 Januari 2020:
| Ukuran | Nilai |
|---|---|
| Usia kalender | 20 tahun, 0 bulan, 0 hari |
| Total bulan | 240 |
| Total minggu | 1.043 |
| Total hari | 7.305 |
| Total jam | 175.320 |
| Total menit | 10.519.200 |
| Total detik | 631.152.000 |
| Hari lahir dalam minggu | Sabtu |
Total 7.305 hari sama dengan 20 × 365 ditambah 5 hari kabisat, untuk tahun kabisat 2000, 2004, 2008, 2012, dan 2016. Masing-masing tahun tersebut menambahkan satu hari kabisat, yaitu 29 Februari, yang termasuk dalam rentang 20 tahun. Itulah sebabnya hitungan hari lebih besar daripada 20 × 365 sederhana, dan mengapa penghitungan secara manual mudah meleset beberapa hari.
Rumus penghitungan usia dalam kode
Metode usia kalender di atas dapat diterapkan dalam sebagian besar bahasa pemrograman. Menggunakan pustaka tanggal bawaan lebih aman daripada menulis sendiri aturan tahun kabisat dan jumlah hari dalam setiap bulan.
1from dateutil.relativedelta import relativedelta
2from datetime import date
3
4birth, target = date(2000, 1, 1), date(2020, 1, 1)
5
6age = relativedelta(target, birth) # calendar age
7print(f"{age.years}y {age.months}m {age.days}d")
8
9total_days = (target - birth).days # total elapsed days
10print(total_days) # 7305
111const MS_PER_DAY = 86400000;
2
3// Add n months, clamping the day to the target month's last day
4// (31 January + 1 month = 28 February). Date.UTC on its own does not
5// clamp: it would roll that date forward into March.
6function addMonthsUTC(base, n) {
7 const total = base.getUTCMonth() + n;
8 const y = base.getUTCFullYear() + Math.floor(total / 12);
9 const m = ((total % 12) + 12) % 12;
10 const lastDay = new Date(Date.UTC(y, m + 1, 0)).getUTCDate();
11 return Date.UTC(y, m, Math.min(base.getUTCDate(), lastDay));
12}
13
14function calendarAge(birth, target) {
15 let months = (target.getUTCFullYear() - birth.getUTCFullYear()) * 12
16 + (target.getUTCMonth() - birth.getUTCMonth());
17 if (addMonthsUTC(birth, months) > target.getTime()) months -= 1;
18 const anchor = addMonthsUTC(birth, months);
19 return {
20 years: Math.floor(months / 12),
21 months: months % 12,
22 days: Math.floor((target.getTime() - anchor) / MS_PER_DAY),
23 };
24}
25
26const birth = new Date(Date.UTC(2000, 0, 1));
27const target = new Date(Date.UTC(2020, 0, 1));
28
29calendarAge(birth, target); // { years: 20, months: 0, days: 0 }
30Math.floor((target - birth) / MS_PER_DAY); // 7305
311' Whole days between two dates (A1 = birth, B1 = target):
2=B1-A1
3
4' Calendar age in complete years / months / leftover days:
5=DATEDIF(A1, B1, "y") & " years, " & DATEDIF(A1, B1, "ym") & " months, " & DATEDIF(A1, B1, "md") & " days"
6Microsoft memperingatkan bahwa argumen "md" dapat menghasilkan angka negatif atau hitungan
hari yang salah di sekitar batas bulan, sehingga bagian sisa hari dari rumus tersebut
tidak selalu sesuai dengan aturan penetapan ke hari terakhir bulan di atas.
Pertanyaan yang sering diajukan
Bagaimana cara mengetahui usia saya secara tepat? Masukkan tanggal lahir dan biarkan tanggal sasaran pada hari ini. Hasilnya menunjukkan usia dalam tahun, bulan, dan hari, serta usia yang sama dalam total hari, minggu, jam, dan detik.
Mengapa dua kalkulator usia memberikan jawaban berbeda? Perbedaannya biasanya terletak pada cara menghitung sisa hari di sekitar batas bulan. Kalkulator yang membatasi tanggal pada bulan yang lebih pendek di akhir bulan, seperti dijelaskan di atas, dapat berbeda satu atau dua hari dari kalkulator yang sekadar membagi waktu yang telah berlalu dengan 30.
Apakah penghitungan memperhitungkan tahun kabisat? Ya. Total hitungan hari mencakup setiap tanggal 29 Februari yang berada di antara kedua tanggal. Pada tahun tanpa tanggal 29 Februari, hari peringatan kelahiran pada hari kabisat dihitung sebagai 28 Februari, yaitu hari terakhir bulan tersebut. Seseorang yang lahir pada 29 Februari 1996 berusia 26 tahun, 11 bulan, dan 22 hari pada 20 Februari 2023, dan ulang tahun berikutnya jatuh 8 hari kemudian, pada 28 Februari 2023.
Apakah usia dapat dihitung untuk tanggal pada masa lalu atau masa depan? Ya. Menetapkan tanggal sasaran ke tanggal masa depan menunjukkan berapa usia seseorang pada hari tersebut. Menetapkannya ke tanggal masa lalu menunjukkan berapa usia mereka saat itu. Tanggal lahir tidak boleh berada di masa depan, dan tanggal sasaran tidak boleh lebih awal daripada tanggal lahir.
Apakah zona waktu memengaruhi hasil? Tidak. Kedua tanggal dikonversi ke tengah malam UTC sebelum hitungan hari dilakukan, sehingga totalnya tetap sama terlepas dari lokasi pengguna atau perubahan waktu musim panas.
Mengapa hitungan hari berbeda dari hasil pembagian hari dengan 365,25? 365,25 hanyalah rata-rata panjang tahun; angka tersebut tidak melacak tahun tertentu dalam rentang itu yang merupakan tahun kabisat dengan 366 hari. Menghitung hari penuh antara dua tanggal kalender nyata bersifat tepat.
Sumber
- Python
dateutil—relativedelta, aturan bulan/hari usia kalender yang dijelaskan di atas. - Platform Java —
Period.betweendanChronoUnit.DAYS. - Microsoft Excel — fungsi
DATEDIF. - MDN Web Docs —
Date. - Dershowitz, N., & Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.