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: 144 hari lagi (akan berusia 37)
Usia Anda dalam unit lain
Kemajuan hidup
Usia Anda terhadap rentang referensi 80 tahun yang bersifat ilustratif.
Dokumentasi
Apa yang dilakukan kalkulator ini
Masukkan tanggal lahir Anda dan kalkulator ini memberitahu Anda berapa usia Anda persis — dalam tahun, bulan, dan hari — sama seperti yang Anda katakan dengan suara keras ("Usia saya 33 tahun, 4 bulan, dan 5 hari"). Ini juga menampilkan usia yang sama dihitung murni dalam bulan, minggu, hari, jam, menit, dan detik, hari dalam seminggu ketika Anda lahir, dan berapa lama hingga ulang tahun Anda berikutnya.
Biarkan kolom kedua pada tanggal hari ini untuk mengetahui usia Anda saat ini, atau ubah ke tanggal lampau atau masa depan untuk menemukan usia Anda pada tanggal itu.
Aturan satu yang membuat usia sulit: bulan dan tahun bukan jumlah hari yang tetap. Februari memiliki 28 atau 29; bulan lain memiliki 30 atau 31. Jadi "1 bulan" berarti "nomor hari yang sama, satu bulan kemudian" — bukan "30 hari." Kalkulator ini mengikuti aturan kalender itu, yang mengapa hasilnya dapat berbeda satu atau dua hari dari alat yang hanya membagi dengan 30 atau 365.
Bagaimana usia Anda dihitung
Usia adalah celah antara dua tanggal. Ada dua cara jujur untuk mengukur celah itu, dan alat ini menampilkan keduanya.
1. Usia kalender (tahun, bulan, hari). Hitung tahun penuh dari ulang tahun Anda, kemudian bulan penuh, kemudian hari yang tersisa:
- Hitung tahun penuh sejak lahir.
- Dari ulang tahun terakhir, hitung bulan penuh.
- Dari sana, hitung hari yang tersisa.
Bagian yang halus adalah langkah 3 di dekat batas bulan. Seseorang yang lahir pada 31 Januari, diukur pada 1 Maret, berusia 1 bulan dan 1 hari — karena "satu bulan setelah 31 Januari" mendarat di 28/29 Februari (tidak ada 31 Februari), dan 1 Maret adalah satu hari melampaui itu. Kalkulator ini menjepit ke akhir bulan yang lebih pendek, cocok dengan aturan dateutil.relativedelta yang banyak digunakan sehingga ulang tahun di akhir bulan tidak pernah menghasilkan hitungan hari negatif.
2. Total waktu yang telah berlalu (hari, jam, detik). Untuk gambar "usia Anda dalam unit lain", dua tanggal dikonversi ke hitungan hari penuh dan dikalikan:
Kedua tanggal disematkan ke tengah malam UTC terlebih dahulu, jadi perubahan penghematan siang tidak dapat menambah atau menghilangkan satu jam dan melempar hitungan hari. Minggu adalah hari ÷ 7 (dibulatkan ke bawah); jam, menit, dan detik adalah hitungan hari diskalakan.
Mengapa tidak hanya membagi hari dengan 365? Karena Anda akan hanyut. Membagi 7.305 hari dengan 365 memberikan 20,01 tahun; membagi dengan 365,25 memberikan 20,00 — tetapi tidak ada yang tahu tahun mana yang merupakan tahun kabisat atau bulan mana yang sebenarnya Anda jalani. Penghitungan kalender tepat; pembagian hari adalah aproksimasi. Gunakan usia kalender untuk "berapa usia saya," dan total hari/minggu untuk pekerjaan waktu yang tepat (waktu obat, durasi proyek, hitungan mundur pencapaian).
Contoh yang dikerjakan
Lahir 1 Januari 2000, diukur 1 Januari 2020:
| Ukur | Nilai |
|---|---|
| Usia kalender | 20 tahun, 0 bulan, 0 hari |
| Total hari | 7.305 |
| Total minggu | 1.043 |
| Hari lahir | Sabtu |
7.305 hari = 20 × 365 + 5 hari kabisat (2000, 2004, 2008, 2012, 2016). Detail tunggal itu — lima hari ekstra yang sebagian besar orang lupakan — adalah alasan yang tepat mengapa kalkulator mengalahkan matematika mental.
Usia dalam kode
Perhitungan yang sama dalam setiap bahasa. Untuk usia kalender, lebih suka perpustakaan tanggal bawaan daripada aritmatika yang digulung tangan — itu sudah tahu tahun kabisat dan panjang bulan.
1' 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"
61from 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
111function calendarAge(birth, target) {
2 let months = (target.getUTCFullYear() - birth.getUTCFullYear()) * 12
3 + (target.getUTCMonth() - birth.getUTCMonth());
4 const anchor = new Date(Date.UTC(birth.getUTCFullYear(), birth.getUTCMonth() + months, birth.getUTCDate()));
5 if (anchor > target) months--;
6 return { years: Math.floor(months / 12), months: months % 12 };
7}
8
9const birth = new Date(Date.UTC(2000, 0, 1));
10const target = new Date(Date.UTC(2020, 0, 1));
11const totalDays = Math.floor((target - birth) / 86400000); // 7305
121import java.time.LocalDate;
2import java.time.Period;
3import java.time.temporal.ChronoUnit;
4
5LocalDate birth = LocalDate.of(2000, 1, 1);
6LocalDate target = LocalDate.of(2020, 1, 1);
7
8Period age = Period.between(birth, target); // 20y 0m 0d
9long totalDays = ChronoUnit.DAYS.between(birth, target); // 7305
101using System;
2
3var birth = new DateTime(2000, 1, 1);
4var target = new DateTime(2020, 1, 1);
5
6int years = target.Year - birth.Year;
7if (birth.AddYears(years) > target) years--; // not birthday yet
8long totalDays = (target - birth).Days; // 7305
91#include <chrono>
2using namespace std::chrono;
3
4// C++20 calendar types
5sys_days birth = year{2000}/1/1;
6sys_days target = year{2020}/1/1;
7
8auto total_days = (target - birth).count(); // 7305
9years_months_days ymd_diff{birth, target}; // year_month_day arithmetic
101package main
2
3import "time"
4
5func main() {
6 birth := time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)
7 target := time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC)
8 totalDays := int(target.Sub(birth).Hours() / 24) // 7305
9 _ = totalDays
10}
111use chrono::{NaiveDate, Datelike};
2
3let birth = NaiveDate::from_ymd_opt(2000, 1, 1).unwrap();
4let target = NaiveDate::from_ymd_opt(2020, 1, 1).unwrap();
5
6let total_days = (target - birth).num_days(); // 7305
7let years = target.year() - birth.year(); // adjust if birthday not reached
81<?php
2$birth = new DateTime('2000-01-01');
3$target = new DateTime('2020-01-01');
4$diff = $birth->diff($target);
5
6echo "{$diff->y}y {$diff->m}m {$diff->d}d\n"; // 20y 0m 0d
7echo $diff->days; // 7305
81require 'date'
2
3birth = Date.new(2000, 1, 1)
4target = Date.new(2020, 1, 1)
5
6total_days = (target - birth).to_i # 7305
7years = target.year - birth.year
8years -= 1 if birth.next_year(years) > target
91birth <- as.Date("2000-01-01")
2target <- as.Date("2020-01-01")
3
4total_days <- as.integer(target - birth) # 7305
5Pertanyaan umum
Berapa usia saya dengan tepat? Masukkan tanggal lahir Anda dan biarkan target pada hari ini. Kalkulator menampilkan usia Anda dalam tahun, bulan, dan hari, dan mengulanginya dalam total hari, minggu, jam, dan detik.
Mengapa usia saya berbeda dari kalkulator lain? Hampir selalu sisa bulan/hari. Alat tidak setuju tentang cara menghitung hari setelah bulan penuh terakhir di batas bulan. Yang ini menjepit ke bulan yang lebih pendek (konvensi relativedelta); alat yang membagi dengan 30 akan berbeda satu atau dua hari.
Apakah itu menangani tahun kabisat dan ulang tahun 29 Februari? Ya. Hitungan hari mencakup setiap hari kabisat dalam rentang, dan ulang tahun 29 Februari diukur terhadap 28 Februari / 1 Maret di tahun non-kabisat tanpa meluap.
Bisakah saya menghitung usia pada tanggal lampau atau masa depan? Ya — atur kolom "Usia pada tanggal" ke tanggal apa pun. Tanggal masa depan memberitahu Anda berapa usia Anda saat itu; tanggal lampau, berapa usia Anda dulu.
Bagaimana dengan zona waktu? Tanggal dinormalisasi ke UTC sebelum menghitung, jadi total hari penuh stabil di mana pun Anda berada atau apakah penghematan siang berubah.
Sumber
- Python
dateutil—relativedelta(aturan bulan/hari usia kalender yang diikuti alat ini). - Platform Java —
Period.betweendanChronoUnit.DAYS. - Microsoft Excel —
DATEDIFfunction. - MDN Web Docs —
Date. - Dershowitz, N., & Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.