ToolDeck

Tarih Hesaplayıcı

İki tarih arasındaki farkı yıl, ay, gün ve daha fazlası cinsinden hesaplayın

Tarih Hesaplama Nedir?

Tarih hesaplama, iki takvim tarihi arasındaki farkı bulma ya da belirli bir tarihten süre ekleme/çıkarma işlemidir. Çevrimiçi bir tarih hesaplayıcı, herhangi iki tarih arasındaki gün, hafta, ay ve yıl sayısını manuel saymaya gerek kalmadan tam olarak belirlemenizi sağlar. Proje planlaması, sözleşme hukuku, finansal muhasebe ve yazılım geliştirmede sıklıkla kullanılır.

Tarih hesaplamanın karmaşıklığı, Gregoryen takviminin düzensiz yapısından kaynaklanır. Aylar 28, 29, 30 veya 31 gün içerir. Yıllar, artık yıl kurallarına bağlı olarak 365 veya 366 gündür. Gün numaralarının basit bir şekilde çıkarılması, tarihler farklı ay veya yılları kapsadığında yanlış sonuçlar verir. Doğru tarih farkı algoritmaları, her takvim birimini ayrı ayrı işleyerek bu düzensizlikleri hesaba katmak zorundadır.

Tarih aritmetiği pek çok programlama bağlamında karşımıza çıkar: token süre sonu hesaplama, tekrarlayan olayları zamanlama, SLA son tarihlerini hesaplama veya günlük girişleri arasındaki geçen süreyi ölçme. DevOps iş akışlarında sertifika geçerlilik pencereleri, dağıtım dondurma süreleri ve nöbet rotasyon uzunlukları olarak gündeme gelir. Çoğu programlama dili tarih kütüphaneleri sunsa da tarayıcı tabanlı bir hesaplayıcı, kod yazmadan, bağımlılık kurmadan veya REPL açmadan hızlı kontroller için anında yanıt verir.

Bu Tarih Hesaplayıcıyı Neden Kullanmalısınız?

Herhangi iki tarih arasındaki zamanı birden fazla birimde aynı anda görün. Formül yok, kod yok, kayıt yok.

Anında Sonuç
İki tarih seçin, farkı yıl, ay, hafta, gün, saat ve dakika olarak görün. Herhangi bir tarihi değiştirdiğinizde sonuçlar anında güncellenir.
🔒
Gizlilik Öncelikli
Tüm hesaplamalar tarayıcınızda çalışır. Herhangi bir tarih sunucuya gönderilmez; hiçbir şey saklanmaz veya kaydedilmez.
📅
Çoklu Çıktı Birimleri
Sonucu aynı anda her birimde görün: toplam gün, hafta, ay ve tam yıl-ay-gün dökümü. Birimler arasında kendiniz dönüştürmenize gerek kalmaz.
🔢
Hesap Gerekmez
Aracı hemen kullanın. Giriş yok, abonelik yok, kullanım limiti yok. Yer işareti ekleyip hızlı tarih kontrolü gerektiğinde kullanın.

Tarih Hesaplayıcı Kullanım Senaryoları

Ön Uç Geliştirme
Bir özellik yayın tarihine kaç gün kaldığını kontrol edin, geri sayım zamanlayıcı mantığını doğrulayın veya tarih seçici bileşenlerini beklenen aralıklara karşı test edin.
Arka Uç Mühendisliği
Token süre sonu pencerelerini doğrulayın, önbellek TTL sürelerini hesaplayın veya zamanlanmış görev aralıklarının doğru sonraki çalışma tarihlerini ürettiğini kontrol edin.
DevOps ve SRE
Olay sonrası raporlarda olay zaman damgaları arasındaki süreyi ölçün, sertifika süre sonu öncesi uyarı sürelerini hesaplayın veya tatil dönemlerindeki dağıtım dondurma sürelerini belirleyin.
QA ve Test
Belirli tarih ofsetleri içeren test verisi oluşturun, doğum tarihlerinden tam yaşları hesaplayarak yaş sınırlama mantığını doğrulayın veya tarih sınır koşullarının doğru işlendiğini onaylayın.
Proje Yönetimi
Sprint sürelerini hesaplayın, kilometre taşları arasındaki iş günü sayısını ölçün veya başlangıç tarihinden takvim günü sayarak teslimat zaman çizelgelerini tahmin edin.
Öğrenciler ve Öğrenim
Bir sınava kaç gün kaldığını sayın, dönem uzunluğunu hesaplayın veya bilgisayar bilimi derslerindeki tarih aritmetiği alıştırmaları için ödev yanıtlarını doğrulayın.

Tarih Süresi Birimleri Başvurusu

Tarih farkı hesaplamaları, değişken uzunluktaki birimler içerir. Ay ve yıllar sabit süreler olmadığından, toplam günlerin basit bir bölümü hatalı sonuçlar verebilir. Aşağıdaki tablo her birimi ve aralığını gösterir:

BirimEşdeğerNot
1 year365 or 366 daysDepends on leap year
1 month28–31 daysVaries by month
1 week7 daysFixed
1 day24 hoursFixed (ignoring DST transitions)
1 hour3,600 secondsFixed
1 minute60 secondsFixed

Yaygın Tarih Biçimleri

Tarihlerle programlı olarak çalışırken biçim, bir tarih dizesinin nasıl ayrıştırıldığını belirler. Yanlış biçim kullanmak sessiz hatalara yol açar. ISO 8601, belirsizlik içermediği ve saat dilimi farkındalığına sahip olduğu için veri alışverişinde en güvenli seçimdir. Aşağıdaki tablo en çok karşılaşacağınız biçimleri listeler:

BiçimÖrnekKullanım Yeri
ISO 86012026-04-10T14:30:00ZAPIs, databases, logs
RFC 2822Fri, 10 Apr 2026 14:30:00 +0000Email headers, HTTP
Unix timestamp1775831400Epoch-based systems
US format04/10/2026User-facing (US locale)
European format10.04.2026User-facing (EU locale)
Short ISO2026-04-10HTML date inputs, SQL DATE

Kod Örnekleri: İki Tarih Arasındaki Gün Hesaplama

JavaScript, Python, Go ve komut satırında iki tarih arasındaki farkı hesaplamak için çalışan örnekler. Her kod parçası hem toplam gün hesaplamasını hem de dilin desteklediği durumlarda takvim birimi dökümünü gösterir.

JavaScript
// Calculate days between two dates
const start = new Date('2026-01-15')
const end = new Date('2026-04-10')
const diffMs = end.getTime() - start.getTime()
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24))
console.log(diffDays) // → 85

// Get year, month, day breakdown
function dateDiff(a, b) {
  let years = b.getFullYear() - a.getFullYear()
  let months = b.getMonth() - a.getMonth()
  let days = b.getDate() - a.getDate()
  if (days < 0) {
    months--
    days += new Date(b.getFullYear(), b.getMonth(), 0).getDate()
  }
  if (months < 0) { years--; months += 12 }
  return { years, months, days }
}
console.log(dateDiff(start, end)) // → { years: 0, months: 2, days: 26 }
Python
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta

start = date(2026, 1, 15)
end = date(2026, 4, 10)

# Total days
diff = (end - start).days
print(diff)  # → 85

# Year/month/day breakdown (requires python-dateutil)
rd = relativedelta(end, start)
print(f"{rd.years}y {rd.months}m {rd.days}d")  # → 0y 2m 26d

# Add 90 days to a date
future = start + timedelta(days=90)
print(future)  # → 2026-04-15
Go
package main

import (
	"fmt"
	"time"
)

func main() {
	start := time.Date(2026, 1, 15, 0, 0, 0, 0, time.UTC)
	end := time.Date(2026, 4, 10, 0, 0, 0, 0, time.UTC)

	// Total duration
	diff := end.Sub(start)
	days := int(diff.Hours() / 24)
	fmt.Println(days) // → 85

	// Add 90 days
	future := start.AddDate(0, 0, 90)
	fmt.Println(future.Format("2006-01-02")) // → 2026-04-15
}
CLI (GNU date / macOS)
# Days between two dates (GNU coreutils)
echo $(( ($(date -d "2026-04-10" +%s) - $(date -d "2026-01-15" +%s)) / 86400 ))
# → 85

# Add 90 days to a date (GNU date)
date -d "2026-01-15 + 90 days" +%Y-%m-%d
# → 2026-04-15

# macOS (BSD date) — add 90 days
date -j -v+90d -f "%Y-%m-%d" "2026-01-15" +%Y-%m-%d
# → 2026-04-15

Sıkça Sorulan Sorular

İki tarih arasındaki gün sayısını nasıl hesaplarım?
Önceki tarihi sonraki tarihten çıkararak milisaniye cinsinden (ya da dilinizin yerel süre türünde) farkı elde edin, ardından bir günlük milisaniye sayısına bölün (86.400.000). Bu size toplam geçen gün sayısını verir. Yıl, ay ve kalan günlere göre takvim dökümü için, aylar değişken uzunlukta olduğundan her birimi ayrı ayrı işlemeniz gerekir.
Tarih farkı başlangıç tarihini mi yoksa bitiş tarihini mi kapsar?
Geleneksel olarak tarih farkı, iki tarih arasındaki gün sayısını başlangıç veya bitiş tarihini dahil etmeden sayar. 1 Ocak ile 2 Ocak seçildiğinde sonuç 1 gündür. Kullanım durumunuz kapsayıcı sayım gerektiriyorsa (her iki uç nokta dahil), sonuca 1 ekleyin. Bu araç, çoğu programlama dilinin kullandığı hariç-son kural izler.
Tarih hesaplamalarında artık yıllar nasıl ele alınır?
Artık yıl, 29 Şubat'ı ekleyerek yılı 366 güne çıkarır. Gregoryen artık yıl kuralı şudur: 4'e bölünebilen yıllar artık yıldır; ancak yüzlük yıllar aynı zamanda 400'e de bölünebilmelidir. Dolayısıyla 2024 ve 2028 artık yıldır, 1900 değildir, 2000 ise artık yıldır. Takvim birimleriyle (yıl/ay/gün) çalışan tarih farkı algoritmaları bunu otomatik olarak işler. Toplam güne dönüştüren algoritmalar ise aralık 29 Şubat'ı kapsadığında ek günü hesaba katmak zorundadır.
Takvim günleri ile iş günleri arasındaki fark nedir?
Takvim günleri, hafta sonları ve tatiller dahil her günü sayar. İş günleri ise Cumartesi, Pazar ve resmi tatilleri dışarıda bırakır. Bu araç takvim günlerini hesaplar. Yaklaşık iş günü sayısına dönüştürmek için toplam takvim günlerini 5/7 ile çarpın. Tam iş günü sayısı için ilgili yetki alanına ait tatil takvimi de gereklidir.
Bir başlangıç tarihine gün ekleyerek gelecekteki bir tarihi hesaplayabilir miyim?
Evet. JavaScript'te bir Date nesnesi oluşturup setDate(getDate() + n) çağırın. Python'da bir tarih nesnesine timedelta(days=n) ekleyin. Go'da time.AddDate(0, 0, n) kullanın. Bu araç bilinen iki tarih arasındaki farka odaklanır; ancak aritmetiğinizi doğrulamak için de kullanabilirsiniz: başlangıç tarihini ve beklenen sonuç tarihini girerek toplam gün çıktısının eklediğiniz ofsetle eşleştiğini onaylayın.
Farklı araçlar neden tarihler arasındaki ay sayısı için farklı sonuçlar verir?
Ay hesaplaması belirsizdir çünkü ayların uzunlukları farklıdır. 31 Ocak ile 28 Şubat arasını ele alalım: bu 1 ay mı yoksa 0 ay 28 gün mi? Farklı kütüphaneler farklı seçimler yapar. En yaygın kural (Python'ın dateutil kütüphanesi, Java'nın Period sınıfı ve bu araç tarafından kullanılan), tam bir ayı aynı gün-numarasına ulaşmak veya kısa ayın son geçerli gününe ulaşmak olarak sayar. Sonuçları karşılaştırırken kütüphanenizin hangi kuralı kullandığını her zaman kontrol edin.
Tarih hesaplaması saat dilimlerinden etkilenir mi?
Zaman bileşeni olmayan tarihleri (yalnızca yıl-ay-gün) seçtiğinizde hesaplama saat diliminden bağımsızdır; çünkü zaman anlarını değil takvim tarihlerini işler. İki belirli an arasındaki farkı (saat ve saat dilimi dahil) hesaplamanız gerekiyorsa tam ISO 8601 zaman damgalarıyla çalışmalı ve çıkarmadan önce her ikisini de UTC'ye dönüştürmelisiniz. Bu araç yalnızca takvim tarihleriyle çalışır.