Tarih ve Zaman Hesaplamaları: Gün ve Yaş Hesaplama
Miladi takvim yapısını, artık yılları, zaman dilimlerini ve iki tarih arasındaki farkı veya yaşınızı doğru hesaplamanın formüllerini öğrenin.
- İki tarih arasındaki fark ve yaş hesaplaması, Miladi takvimdeki ay uzunlukları (28-31 gün) ve artık yıl kuralları dikkate alınarak yapılır.
- Artık yıllar (Leap Year), dünya etrafındaki 365 gün 5 saat 48 dakikalık yörünge süresini dengelemek amacıyla her 4 yılda bir Şubat ayına 29. gün olarak eklenir.
- Programlama dillerinde zaman damgası (Epoch Unix Timestamp) temel alınarak tarih farkları milisaniye cinsinden hesaplanır.
- Yaş hesaplanırken tam yıl, ay ve gün detaylarının doğru belirlenmesi doğum gününün ilgili yıldaki karşılığına göre değişkenlik gösterir.
Günlük yaşamda, hukuki süreçlerde, finansal işlemlerde, insan kaynakları yönetiminde ve yazılım projelerinde tarih ile zaman hesaplamaları en sık karşılaşılan matematiksel işlemler arasındadır. Yaş tespiti, iki olay arasında geçen toplam gün sayısı veya belirli bir tarihten sonraki iş günlerinin bulunması ilk bakışta basit görünse de takvim sisteminin karmaşık yapısı nedeniyle hassas kurallara dayanır.
Takvim Sistemleri ve Artık Yıl (Leap Year) Kuralları
Günümüzde uluslararası standart olarak kabul edilen Miladi (Gregoryen) Takvim, Dünya'nın Güneş etrafındaki dönüş süresini temel alır. Tam bir tropikal yıl yaklaşık 365 gün 5 saat 48 dakika 45 saniyedir. Küsuratlı sürenin zamanla birikerek takvimde mevsimsel kaymalara yol açmaması için Gregorian takvim reformu ile artık yıl kuralı getirilmiştir.
Artık yıl belirlemede uygulanan üç temel kural şunlardır:
- Yıl sayısı 4'e tam bölünebiliyorsa artık yıldır (Örn: 2024, 2028).
- Ancak yıl sayısı 100'e tam bölünebiliyorsa artık yıl değildir (Örn: 1900, 2100).
- Buna karşın yıl sayısı 400'e tam bölünebiliyorsa yine artık yıldır (Örn: 1600, 2000).
Bu kurallar sayesinde takvim yılı ile astronomik yıl arasındaki fark binlerce yıl boyunca dengede tutulur. Tarih işlemlerinde kesin zaman damgalarını analiz etmek için Unix Timestamp Rehberi sayfamızdaki teknik bilgileri inceleyebilirsiniz.
İki Tarih Arasındaki Farkın Hesaplanması
İki tarih arasında geçen zamanı gün, hafta, ay ve yıl bazında hesaplamak için başlangıç ve bitiş tarihlerinin her ikisinin de milisaniye cinsinden Unix zamanına çevrilmesi en güvenilir yöntemdir.
Matematiksel adımlar şu şekildedir:
- Başlangıç tarihi (
T1) ve Bitiş tarihi (T2) UTC cinsinden zaman damgasına dönüştürülür. - Aradaki fark milisaniye cinsinden bulunur:
Δt = T2 - T1. - Elde edilen değer bir gündeki milisaniye sayısına (86.400.000 ms) bölünür.
Toplam Gün = Δt / (1000 × 60 × 60 × 24)
Aşağıdaki JavaScript/TypeScript kod bloğu iki tarih arasındaki gün farkını hassas bir şekilde hesaplar:
function getDaysBetween(date1: Date, date2: Date): number {
const ONE_DAY_MS = 1000 * 60 * 60 * 24;
// Saat farklarını nötrlemek için UTC gece yarısına ayarlanır
const utc1 = Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());
const utc2 = Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());
return Math.floor(Math.abs(utc2 - utc1) / ONE_DAY_MS);
}
// Örnek kullanım
const startDate = new Date("2026-01-01");
const endDate = new Date("2026-08-02");
console.log(getDaysBetween(startDate, endDate)); // 213 gün
Farklı takvim aralıklarını anında hesaplamak ve projelerinize entegre etmek için Date Calculator aracımızdan yararlanabilirsiniz.
Tam Yaş Hesaplama Mantığı ve Ay/Gün Detayları
Yaş hesaplama işlemi yalnızca bulunulan yıldan doğum yılının çıkarılmasıyla bitmez. Gerçek ve kesin yaş; tamamlanan yıl, ay ve gün olarak üç ayrı bileşende ifade edilir. Çünkü ayların gün sayıları 28 ile 31 arasında değişmektedir.
Yaş hesaplanırken uygulanan adım adım algoritma mantığı:
- Bulunulan günden doğum günü çıkarılır. Eğer sonuç negatifse bir önceki aydan gün sayısı (28, 30 veya 31) ödünç alınır.
- Bulunulan aydan doğum ayı çıkarılır. Ödünç alma yapıldıysa 1 ay düşülür. Sonuç negatifse yıldan 12 ay ödünç alınır.
- Bulunulan yıldan doğum yılı çıkarılır (ödünç alındıysa 1 yıl düşülür).
Elde edilen sonuç kişinin tam yaşını (Örn: 28 Yıl, 5 Ay, 14 Gün) kesin olarak ortaya koyar.
Yazılım Geliştirmede Zaman Dilimleri ve UTC Kullanımı
Tarih hesaplamalarında en sık yapılan hatalardan biri yerel saat dilimlerini (Timezone) hesaba katmamaktır. Farklı coğrafi bölgelerde bulunan kullanıcıların işlem yaptığı sistemlerde saat dilimi kaymaları bir günlük hesaplama hatalarına sebep olabilir.
Tarih verisi saklanırken ve işlenirken şu standartlar izlenmelidir:
- Veritabanı Saklama: Tüm zaman verileri Evrensel Zaman Standartı (UTC) veya ISO-8601 formatında (
YYYY-MM-DDTHH:mm:ss.sssZ) saklanmalıdır. - Kullanıcı Gösterimi: İki tarih arasındaki gün farkı hesaplanırken saat/dakika değerleri sıfırlanarak sadece takvim günü esas alınmalıdır.
- Yaz Saati Uygulaması (DST): Yaz saati değişikliklerinde günün 23 veya 25 saat çekebileceği unutulmamalı, milisaniye dönüşümlerinde UTC fonksiyonları tercih edilmelidir.
İş Günü ve Tatil Hesaplama Mimarisi
Özellikle finans, lojistik ve proje yönetim yazılımlarında sadece takvim günleri değil, hafta sonları ve resmi tatiller çıkarılarak elde edilen net iş günü sayısı önem kazanır. Bir tarih aralığındaki iş günlerini bulmak için döngüsel olarak her günün haftanın hangi günü (Cumartesi = 6, Pazar = 0) olduğu kontrol edilir ve resmi tatil dizisiyle karşılaştırılır.
Sıkça Sorulan Sorular
Artık yıllarda Şubat ayı neden 29 gün çeker?
Dünyanın güneş etrafındaki yörünge turu 365 gün 6 saate yakındır. Artan 6 saatlik süreler 4 yılda birikerek 24 saati (1 günü) oluşturur. Bu ilave gün geleneksel olarak yılın en kısa ayı olan Şubat ayına eklenir.
İki tarih arasındaki gün sayısı hesaplanırken başlangıç ve bitiş günleri dahil edilir mi?
Standart fark hesaplamalarında bitiş tarihi başlangıç tarihinden çıkarıldığı için başlangıç günü dahil edilir, bitiş günü hariç tutulur. Her iki günün de dahil edilmesi isteniyorsa sonuca 1 gün eklenir.
29 Şubat doğumluların yaş hesaplaması nasıl yapılır?
29 Şubat tarihinde doğan kişiler artık yıl olmayan yıllarda resmi olarak 28 Şubat gece yarısından sonra veya 1 Mart tarihinde 1 yaşını doldurmuş kabul edilir. Matematiksel gün farkı hesaplamalarında doğum tarihi tam UTC zaman damgasıyla işlenir.
Doğum gününden bu yana kaç gün yaşandığı nasıl hesaplanır?
Doğum tarihiniz ile bugünün tarihi arasındaki toplam milisaniye farkı bulunarak 86.400.000'a bölünür. Bu işlem yaşam boyunca geçirdiğiniz toplam gün sayısını kesin olarak verir.
İki tarih arasındaki ay sayısı nasıl hesaplanır?
Tarihler arasındaki toplam ay sayısı (Yıl2 - Yıl1) * 12 + (Ay2 - Ay1) formülüyle hesaplanır. Gün farkına göre kalan gün sayısı ayrıca belirtilir.