Yaş Hesaplayıcısı — Tam Yaş Yıl, Ay ve Gün Cinsinden
Ücretsiz yaş hesaplayıcısı: doğum tarihinizi girin ve tam yaşınızı yıl, ay ve gün cinsinden alın, ayrıca toplam haftalar, günler, saatler ve sonraki doğum gününüzü öğrenin.
Yaş Hesaplayıcısı
Doğduğunuz bir Monday
Sonraki doğum günü: 144 gün uzakta (37 yaşına dönüyor)
Yaşınız diğer birimlerle
Yaşam ilerlemesi
Yaşınız, örneğin 80 yıllık bir yaşam dönemine karşı.
Belgeler
Bu hesaplayıcı ne yapar
Doğum tarihinizi girin ve tam olarak kaç yaşında olduğunuzu öğrenin — yıl, ay ve gün cinsinden — tıpkı sesli olarak söylerken gibi ("33 yıl, 4 ay ve 5 günüm var"). Ayrıca aynı yaşı sadece ay, hafta, gün, saat, dakika ve saniye cinsinden gösterir, doğduğunuz günü ve sonraki doğum gününüze kadar ne kadar süre kaldığını gösterir.
İkinci alanı bugünün tarihi olarak bırakın mevcut yaşınız için veya herhangi bir geçmiş veya gelecek tarihine değiştirin o tarihteki yaşınızı bulmak için.
Yaşları zor kılan bir kural: aylar ve yıllar sabit gün sayısı değildir. Şubat 28 veya 29 gündür; diğer aylar 30 veya 31 gündür. Yani "1 ay" "30 gün" değil "aynı gün sayısı, bir ay sonra" anlamına gelir. Bu hesaplayıcı bu takvim kuralını izler, bu nedenle sadece 30 veya 365'e bölen araçlardan bir veya iki gün farklılık gösterebilir.
Yaşınız Nasıl Hesaplanır
Yaş iki tarih arasındaki farkıdır. Bu farkı ölçmenin iki doğru yolu var ve bu araç her ikisini de gösterir.
1. Takvim yaşı (yıl, ay, gün). Doğum gününüzden tam yılları sayın, ardından tam ayları, sonra kalan günleri:
- Doğumdan bu yana geçen tam yılları sayın.
- Son doğum gününden tam ayları sayın.
- Oradan itibaren kalan günleri sayın.
İnce nokta, adım 3'ün ay sınırlarına yakın olmasıdır. 31 Ocak doğan birinin 1 Mart'ta ölçüldüğünde yaşı 1 ay ve 1 gün olur — çünkü "Ocak 31'den bir ay sonra" Şubat 28/29'a denk gelir (Şubat 31 yoktur) ve 1 Mart bu günün bir gün ötesinde. Bu hesaplayıcı, daha kısa ayın sonuna sabitlenerek, yaygın olarak kullanılan dateutil.relativedelta kuralıyla eşleşir, böylece ay sonu doğum günleri asla negatif gün sayısı üretmez.
2. Toplam geçen süre (gün, saat, saniye). "Yaşınız diğer birimlerle" rakamları için, iki tarih tam gün sayısına dönüştürülür ve çarpılır:
Her iki tarih ilk olarak UTC gece yarısına sabitlenir, böylece yaz saati değişiklikleri saat ekleyemez veya çıkaramaz ve gün sayısını başaramaz. Haftalar gün ÷ 7'dir (aşağıya yuvarlanır); saatler, dakikalar ve saniyeler gün sayısı ölçeklenmiştir.
Neden sadece günleri 365'e bölmüyorsunuz? Çünkü sürüklenirsiniz. 7.305 günü 365'e bölmek 20,01 yıl verir; 365,25'e bölmek 20,00 verir — ancak hiçbiri hangi yılların artık yıl olduğunu veya aslında hangi ayları yaşadığınızı bilmez. Takvim sayımı kesin; gün bölme yaklaştırmadır. "Kaç yaşındayım" için takvim yaşını ve kesin geçen süre çalışması için toplam gün/haftayı kullanın (ilaç zamanlaması, proje süreleri, kilometre taşı geri sayımları).
Çalışılmış Örnek
1 Ocak 2000 doğan, 1 Ocak 2020'de ölçülen:
| Ölçü | Değer |
|---|---|
| Takvim yaşı | 20 yıl, 0 ay, 0 gün |
| Toplam gün | 7.305 |
| Toplam haftalar | 1.043 |
| Doğulan gün | Cumartesi |
7.305 gün = 20 × 365 + 5 artık gün (2000, 2004, 2008, 2012, 2016). Bu tek detay — çoğu insanın unuttuğu beş ekstra gün — tam olarak bir hesaplayıcının zihinsel matematiği neden yeneceğidir.
Koddaki Yaş
Her dilde aynı hesaplama. Takvim yaşı için, el yazısı aritmetikten yerleşik bir tarih kitaplığını tercih edin — zaten artık yılları ve ay uzunluklarını bilir.
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
5Sık Sorulan Sorular
Tam olarak kaç yaşındayım? Doğum tarihinizi girin ve hedefi bugüne bırakın. Hesaplayıcı yaşınızı yıl, ay ve gün cinsinden gösterir ve bunu toplam gün, hafta, saat ve saniye cinsinden tekrarlar.
Yaşım başka bir hesaplayıcıdan neden farklı? Neredeyse her zaman ay/gün kalanı. Araçlar, ay sınırlarında son tam aydan sonraki günleri nasıl sayacağı konusunda anlaşmazlığa gelir. Bu kısa ayı kısıtlıyor (relativedelta kuralı); 30'a bölünen bir araç bir veya iki gün farklılık gösterir.
Artık yılları ve Şubat 29 doğum günlerini işler mi? Evet. Gün sayıları aralıktaki her artık günü içerir ve Şubat 29 doğum günü, artık olmayan yıllarda Şubat 28 / Mart 1'e karşı taşmadan ölçülür.
Geçmiş veya gelecekteki bir tarihte yaş hesaplayabilir miyim? Evet — "Tarihte Yaş" alanını herhangi bir tarihte ayarlayın. Gelecekteki tarih, o zaman kaç yaşında olacağınızı söyler; geçmişteki tarih, kaç yaşında olduğunuzu.
Saat Dilimleri Hakkında Ne? Tarihler sayılmadan önce UTC'ye normalleştirilir, bu nedenle nerede olursanız olun veya yaz saati değişip değişmediği toplam gün stabil kalır.
Kaynaklar
- Python
dateutil—relativedelta(the calendar-age month/day rule this tool follows). - Java Platform —
Period.betweenandChronoUnit.DAYS. - Microsoft Excel —
DATEDIFfunction. - MDN Web Docs —
Date. - Dershowitz, N., & Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.