Ham HTML
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Yaş Hesaplama - Ücretsiz Online Yaş ve Gün Hesaplayıcı</title>
<meta name="description" content="Doğum tarihinizi girin; tam yaşınızı yıl, ay ve gün olarak, yaşadığınız toplam gün sayısını ve doğum gününüze kalan süreyi anında hesaplayın. %100 tarayıcıda çalışır.">
<meta name="robots" content="index, follow">
<meta property="og:type" content="website">
<meta property="og:title" content="Yaş Hesaplama - Ücretsiz Online Yaş ve Gün Hesaplayıcı">
<meta property="og:description" content="Doğum tarihinizi girin; tam yaşınızı yıl, ay, gün olarak ve doğum gününüze kalan süreyi anında hesaplayın. %100 tarayıcıda çalışır.">
<meta name="theme-color" content="#6366f1">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "Yaş Hesaplama Aracı",
"description": "Doğum tarihinden bugüne tam yaşı yıl, ay ve gün olarak, toplam yaşanan gün sayısını ve bir sonraki doğum gününe kalan süreyi hesaplayan ücretsiz online araç.",
"applicationCategory": "UtilitiesApplication",
"operatingSystem": "Any",
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "TRY" }
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Yaş nasıl hesaplanır?",
"acceptedAnswer": { "@type": "Answer", "text": "Yaş, bugünün tarihi ile doğum tarihi arasındaki farkın yıl, ay ve gün olarak ayrıştırılmasıyla hesaplanır. Doğum gününüz henüz gelmediyse tam yaşınıza bir yıl daha eklenmeden önceki yıl esas alınır." }
},
{
"@type": "Question",
"name": "Doğum gününe kaç gün kaldığını nasıl öğrenebilirim?",
"acceptedAnswer": { "@type": "Answer", "text": "Doğum tarihinizin gün ve ayı, bu yılki veya henüz geçmediyse gelecek yılki tarihle karşılaştırılarak aradaki gün farkı hesaplanır. Bu araç, doğum gününüze kalan gün sayısını otomatik olarak gösterir." }
},
{
"@type": "Question",
"name": "Yaşımı gün cinsinden görebilir miyim?",
"acceptedAnswer": { "@type": "Answer", "text": "Evet, bu araç doğum tarihinizden bugüne kadar geçen toplam gün sayısını da hesaplayarak gösterir. Bu bilgi, özel kutlamalar veya ilginç dönüm noktalarını (örneğin 10.000. gününüz gibi) takip etmek isteyenler için kullanışlıdır." }
},
{
"@type": "Question",
"name": "Artık yıllar yaş hesaplamasını etkiler mi?",
"acceptedAnswer": { "@type": "Answer", "text": "Bu araç gerçek takvim tarihlerini kullanarak hesaplama yaptığı için artık yıllardaki 29 Şubat günleri otomatik olarak doğru şekilde hesaba katılır; ayrıca bir hesaplama hatası oluşmaz." }
}
]
}
</script>
<style>
:root {
--bg:#f5f6fb; --surface:#fff; --surface-2:#f0f2f9; --border:#e3e6f0;
--text:#1d2033; --muted:#6b7089; --primary:#6366f1; --primary-600:#4f46e5;
--primary-soft:#eef0ff; --success:#10b981; --danger:#ef4444; --warning:#f59e0b;
--radius:16px; --shadow:0 10px 30px -12px rgba(30,35,90,.18);
}
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; background: var(--bg); color: var(--text); line-height:1.55; }
.container { max-width: 720px; margin: 0 auto; padding: 24px 16px 60px; }
header.hero { text-align:center; padding: 28px 0 8px; }
header.hero h1 { font-size: clamp(1.5rem, 4vw, 2rem); margin: 0 0 8px; }
header.hero p { color: var(--muted); margin:0; font-size: 1rem; }
.trust-badge { display:inline-flex; align-items:center; gap:6px; background: var(--primary-soft); color: var(--primary-600); font-size: .8rem; font-weight:600; padding:6px 14px; border-radius:999px; margin-top:12px; }
.ad-slot { min-height: 0; }
.card { background: var(--surface); border:1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px; margin: 20px 0; }
.field { margin-bottom: 16px; }
.field label { display:block; font-size: .88rem; font-weight:600; margin-bottom:6px; color: var(--text); }
.field .hint { font-size:.78rem; color: var(--muted); margin-top:4px; }
input[type="date"] { width:100%; padding: 12px 14px; border: 1px solid var(--border); background: var(--surface-2); border-radius: 12px; font-size: 1rem; color: var(--text); outline:none; transition: border-color .15s, box-shadow .15s; font-family:inherit; }
input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }
.btn { width:100%; padding: 14px 20px; border:none; border-radius: 12px; background: var(--primary); color:#fff; font-size: 1rem; font-weight:700; cursor:pointer; transition: background .15s, transform .05s; margin-top: 6px; }
.btn:hover { background: var(--primary-600); }
.btn:active { transform: scale(.99); }
.warning { display:none; background: #fff4e5; border: 1px solid var(--warning); color:#8a5a00; padding: 12px 14px; border-radius: 12px; font-size:.88rem; margin-top: 14px; }
.warning.show { display:block; }
.result { display:none; margin-top: 20px; border-top: 1px dashed var(--border); padding-top: 18px; }
.result.show { display:block; }
.result-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.result-item { background: var(--surface-2); border-radius: 12px; padding: 14px; text-align:center; }
.result-item .label { font-size:.78rem; color: var(--muted); margin-bottom:6px; }
.result-item .value { font-size: 1.15rem; font-weight:700; color: var(--text); }
.result-item.highlight .value { color: var(--primary-600); }
.result-main { background: var(--primary-soft); border-radius: 12px; padding: 18px; text-align:center; margin-bottom: 14px; }
.result-main .value { font-size: 1.6rem; font-weight:800; color: var(--primary-600); }
.result-main .label { font-size:.82rem; color: var(--primary-600); font-weight:600; margin-bottom:4px; }
section.seo h2 { font-size: 1.25rem; margin: 28px 0 10px; }
section.seo p { color: var(--text); font-size: .96rem; }
details { background: var(--surface); border:1px solid var(--border); border-radius: 12px; padding: 14px 16px; margin-bottom: 10px; box-shadow: var(--shadow); }
summary { cursor:pointer; font-weight:600; font-size:.95rem; }
details p { margin: 10px 0 0; color: var(--muted); font-size:.9rem; }
@media (max-width:480px) { .card { padding:18px; } }
</style>
</head>
<body>
<div class="container">
<header class="hero">
<h1>Yaş Hesaplama Aracı</h1>
<p>Doğum tarihinizi girin; tam yaşınızı yıl, ay ve gün olarak anında görün.</p>
<span class="trust-badge">🔒 %100 Tarayıcıda — Veriniz Hiçbir Yere Gönderilmez</span>
</header>
<!-- [reklam:arac-header] -->
<div class="ad-slot"></div>
<main class="card">
<div class="field">
<label for="birthDate">Doğum Tarihi</label>
<input type="date" id="birthDate">
</div>
<button class="btn" onclick="hesaplaYas()">Hesapla</button>
<div class="warning" id="warningBox"></div>
<div class="result" id="resultBox">
<div class="result-main">
<div class="label">Tam Yaşınız</div>
<div class="value" id="resMainAge">-</div>
</div>
<div class="result-grid">
<div class="result-item highlight">
<div class="label">Toplam Yaşanan Gün</div>
<div class="value" id="resTotalDays">-</div>
</div>
<div class="result-item">
<div class="label">Bir Sonraki Doğum Gününe Kalan</div>
<div class="value" id="resNextBirthday">-</div>
</div>
</div>
</div>
</main>
<!-- [reklam:arac-alt] -->
<div class="ad-slot"></div>
<section class="seo">
<h2>Yaş Hesaplama Nedir?</h2>
<p>Yaş hesaplama, doğum tarihinizden bugüne kadar geçen süreyi yıl, ay ve gün cinsinden hesaplayarak tam yaşınızı bulmanızı sağlayan basit ama sıkça ihtiyaç duyulan bir işlemdir. Resmi başvurular, sağlık kontrolleri, emeklilik planlaması veya sadece merak amaçlı kullanılabilir. Bu araç, standart yaş hesaplamasının yanı sıra doğduğunuz günden bu yana kaç gün yaşadığınızı ve bir sonraki doğum gününüze kaç gün kaldığını da hesaplayarak size ek bilgiler sunar.</p>
<h2>Nasıl Kullanılır?</h2>
<p>Aracı kullanmak için sadece doğum tarihinizi "Doğum Tarihi" alanına seçmeniz yeterlidir. "Hesapla" butonuna bastığınızda araç, bugünün tarihini esas alarak tam yaşınızı yıl, ay ve gün olarak hesaplar; ayrıca doğduğunuz günden bu yana geçen toplam gün sayısını ve bir sonraki doğum gününüze kalan gün sayısını gösterir. Artık yıllar ve farklı ay uzunlukları hesaplamaya otomatik olarak doğru şekilde dahil edilir. Tüm işlem tarayıcınızda gerçekleşir, girdiğiniz doğum tarihi hiçbir şekilde kaydedilmez veya herhangi bir sunucuya gönderilmez.</p>
<h2>Sıkça Sorulan Sorular</h2>
<details>
<summary>Yaş nasıl hesaplanır?</summary>
<p>Yaş, bugünün tarihi ile doğum tarihi arasındaki farkın yıl, ay ve gün olarak ayrıştırılmasıyla hesaplanır. Doğum gününüz henüz gelmediyse tam yaşınıza bir yıl daha eklenmeden önceki yıl esas alınır.</p>
</details>
<details>
<summary>Doğum gününe kaç gün kaldığını nasıl öğrenebilirim?</summary>
<p>Doğum tarihinizin gün ve ayı, bu yılki veya henüz geçmediyse gelecek yılki tarihle karşılaştırılarak aradaki gün farkı hesaplanır. Bu araç, doğum gününüze kalan gün sayısını otomatik olarak gösterir.</p>
</details>
<details>
<summary>Yaşımı gün cinsinden görebilir miyim?</summary>
<p>Evet, bu araç doğum tarihinizden bugüne kadar geçen toplam gün sayısını da hesaplayarak gösterir. Bu bilgi, özel kutlamalar veya ilginç dönüm noktalarını (örneğin 10.000. gününüz gibi) takip etmek isteyenler için kullanışlıdır.</p>
</details>
<details>
<summary>Artık yıllar yaş hesaplamasını etkiler mi?</summary>
<p>Bu araç gerçek takvim tarihlerini kullanarak hesaplama yaptığı için artık yıllardaki 29 Şubat günleri otomatik olarak doğru şekilde hesaba katılır; ayrıca bir hesaplama hatası oluşmaz.</p>
</details>
</section>
</div>
<script>
function showWarning(msg) {
var box = document.getElementById("warningBox");
box.textContent = msg;
box.classList.add("show");
document.getElementById("resultBox").classList.remove("show");
}
function clearWarning() {
var box = document.getElementById("warningBox");
box.textContent = "";
box.classList.remove("show");
}
function daysInMonth(year, month) {
return new Date(year, month + 1, 0).getDate();
}
function hesaplaYas() {
clearWarning();
var raw = document.getElementById("birthDate").value;
if (!raw) {
showWarning("Lütfen doğum tarihinizi seçin.");
return;
}
var birth = new Date(raw + "T00:00:00");
var today = new Date();
today.setHours(0, 0, 0, 0);
if (isNaN(birth.getTime())) {
showWarning("Lütfen geçerli bir tarih seçin.");
return;
}
if (birth > today) {
showWarning("Doğum tarihi gelecekte olamaz. Lütfen geçerli bir tarih girin.");
return;
}
var years = today.getFullYear() - birth.getFullYear();
var months = today.getMonth() - birth.getMonth();
var days = today.getDate() - birth.getDate();
if (days < 0) {
months -= 1;
var prevMonth = today.getMonth() - 1;
var prevYear = today.getFullYear();
if (prevMonth < 0) { prevMonth = 11; prevYear -= 1; }
days += daysInMonth(prevYear, prevMonth);
}
if (months < 0) {
years -= 1;
months += 12;
}
var totalDays = Math.floor((today - birth) / (1000 * 60 * 60 * 24));
var nextBirthday = new Date(today.getFullYear(), birth.getMonth(), birth.getDate());
if (nextBirthday < today) {
nextBirthday = new Date(today.getFullYear() + 1, birth.getMonth(), birth.getDate());
}
var daysToNextBirthday = Math.round((nextBirthday - today) / (1000 * 60 * 60 * 24));
document.getElementById("resMainAge").textContent = years + " yıl " + months + " ay " + days + " gün";
document.getElementById("resTotalDays").textContent = totalDays.toLocaleString("tr-TR") + " gün";
document.getElementById("resNextBirthday").textContent = daysToNextBirthday === 0 ? "Bugün! 🎉" : daysToNextBirthday + " gün";
document.getElementById("resultBox").classList.add("show");
}
</script>
</body>
</html>