Kaçıncı Haftadayız Editör Ekibi Son Güncelleme: 18 Kasım 2025 7 dakika okuma

🔬 ISO 8601 Hesaplama Standartları

Uluslararası hafta numarası hesaplama standardının teknik dökümantasyonu ve algoritma detayları

Teknik Özet

Bu dökümantasyon, kacincihaftadayiz.com sitesinde kullanılan hafta hesaplama algoritmasının teknik temellerini ve ISO 8601:2019 standardına uyumluluğunu açıklar.

Doğrulama Protokolü: Tüm hesaplamalarımız ISO 8601 Week Date standardına göre gerçekleştirilir ve uluslararası zaman sunucularından doğrulanır.

→ Hafta Numarası Nedir? | SSS

1. ISO 8601 Standardı Nedir?

ISO 8601, Uluslararası Standartlaştırma Örgütü (ISO) tarafından belirlenen tarih ve saat formatı standardıdır. Bu standard, hafta numarası hesaplaması için şu kriterleri belirler:

1.1 Temel Kurallar

  • Pazartesi Başlangıcı: Her hafta Pazartesi günü başlar ve Pazar günü sona erer
  • 1. Hafta Tanımı: Yılın ilk haftası, 4 Ocak'ı içeren hafta olarak kabul edilir
  • Perşembe Kuralı: Haftanın hangi yıla ait olduğu, o haftanın Perşembe gününe göre belirlenir
  • 52/53 Hafta: Yıllar 52 veya 53 hafta içerebilir

📋 Teknik Not: ISO 8601 standardı, gregoryen takvimin matematiksel özelliklerini kullanarak tutarlı hafta hesaplaması sağlar. Bu sayede farklı ülkeler ve sistemler arasında standart bir hafta numarası sistemi oluşturulmuştur.

2. Algoritma İmplementasyonu

Sitemizde kullanılan hafta hesaplama algoritması aşağıdaki adımları takip eder:

2.1 Hafta Numarası Hesaplama Algoritması

function getISOWeek(date) {
    // 1. Hedef tarihi kopyala ve saati sıfırla
    const tempDate = new Date(date.getTime());
    tempDate.setHours(0, 0, 0, 0);
    
    // 2. Perşembe kuralını uygula (hafta ortası = Perşembe)
    tempDate.setDate(tempDate.getDate() + 3 - ((tempDate.getDay() + 6) % 7));
    
    // 3. Yılın ilk haftasını bul (4 Ocak'ı içeren hafta)
    const week1 = new Date(tempDate.getFullYear(), 0, 4);
    
    // 4. Hafta sayısını hesapla
    return 1 + Math.round(((tempDate.getTime() - week1.getTime()) / 86400000 
           - 3 + ((week1.getDay() + 6) % 7)) / 7);
}

2.2 Algoritma Adımları Detayı

Adım 1: Tarih Normalizasyonu

Hesaplama sırasında saat bilgisini sıfırlayarak sadece tarih üzerinde çalışılır.

Adım 2: Perşembe Referansı

Hedef tarih, o haftanın Perşembe gününe kaydırılır. Bu, haftanın hangi yıla ait olduğunu belirler.

Adım 3: İlk Hafta Hesaplaması

4 Ocak tarihi kullanılarak yılın ilk haftası belirlenir.

Adım 4: Hafta Farkı Hesaplaması

İki tarih arasındaki gün farkı hesaplanır ve 7'ye bölünerek hafta numarası bulunur.

3. Kritik Durumlar ve İstisnalar

3.1 Yılbaşı Geçişleri

ISO 8601 standardında en karmaşık durumlar yılbaşı geçişlerinde oluşur:

Örnek Senaryolar:

  • 29 Aralık 2025: Bu tarih 2026 yılının 1. haftasına aittir
  • 4 Ocak 2026: Bu tarih kesinlikle 2026 yılının 1. haftasındadır
  • 3 Ocak 2026: Bu tarih hala 2025 yılının 53. haftasına aittir

3.2 53 Haftalı Yıllar

Bir yıl ancak şu koşullarda 53 hafta içerir:

  • 1 Ocak Perşembe'ye denk gelirse
  • Artık yılda 1 Ocak Çarşamba'ya denk gelirse

→ 2026 Yılı 53 Haftalı Yıl Planlama Rehberi

// 53 haftalı yıl kontrolü
function has53Weeks(year) {
    const jan1 = new Date(year, 0, 1);
    const day = jan1.getDay();
    
    // 1 Ocak Perşembe ise veya artık yılda Çarşamba ise
    return (day === 4) || (day === 3 && isLeapYear(year));
}

4. Doğrulama ve Test Protokolü

4.1 Referans Kaynaklar

Hesaplamalarımız aşağıdaki resmi kaynaklarla doğrulanır:

4.2 Otomatik Test Süreçleri

🔍 Kalite Güvencesi: Sistemimiz günlük olarak şu testleri gerçekleştirir:

  • ✓ Son 10 yıl için bilinen hafta numaralarıyla karşılaştırma
  • ✓ Yılbaşı geçiş tarihlerinin doğru hesaplanması
  • ✓ 53 haftalı yılların doğru tespit edilmesi
  • ✓ Artık yıl hesaplamalarının kontrolü

5. Performans ve Optimizasyon

5.1 Hesaplama Verimliliği

Algoritmamız O(1) zaman karmaşıklığında çalışır ve aşağıdaki optimizasyonları içerir:

Client-Side Caching

Hesaplanan hafta bilgileri 1 saat süreyle localStorage'da cache'lenir

Matematiksel Optimizasyon

Döngü kullanmadan direkt matematiksel formüllerle hesaplama

Memory Efficient

Minimum bellek kullanımı ile maksimum performans

Cross-Browser Uyumluluğu

Tüm modern tarayıcılarda tutarlı sonuçlar

6. Gelecek Güncellemeleri ve Sürdürülebilirlik

6.1 Standard Güncellemeleri Takibi

ISO 8601 standardında yapılabilecek güncellemeler sürekli takip edilir ve gerektiğinde algoritmamız güncellenir.

6.2 Bakım ve Sürdürülebilirlik

  • • Aylık doğruluk kontrolleri
  • • Yıllık algorithm review
  • • ISO komitesi güncellemeleri takibi
  • • Performans optimizasyonu sürekli iyileştirmeleri

7. Teknik Referanslar ve Kaynakça

Birincil Kaynaklar:

  1. 1. International Organization for Standardization. (2019). ISO 8601:2019 Date and time — Representations for information interchange. Geneva: ISO.
  2. 2. Reingold, E. M., & Dershowitz, N. (2018). Calendrical Calculations: The Ultimate Edition. Cambridge University Press.
  3. 3. ECMA-262 ECMAScript Language Specification. Date Objects and Time Values.
  4. 4. RFC 3339 - Date and Time on the Internet: Timestamps. Internet Engineering Task Force.

Online Kaynaklar:

📚 İlgili Makaleler

📖 Hafta Numarası Nedir?

ISO 8601 standardı, uluslararası kabul ve hafta numarası tanımı

❓ Hesaplama SSS

50+ soru-cevap ile hafta hesaplama algoritmaları ve pratik uygulamalar

📅 2026 Yılı 53 Hafta

53 haftalı yıl analizi ve iş planlaması stratejileri

🏢 Kurumsal Sistemler

Hafta bazlı iş takip ve proje yönetimi araçları