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.
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:
- • ISO.org Resmi Dokümantasyonu
- • Wikipedia: ISO Week Date
- • Epoch Converter Week Calculator
- • NIST (National Institute of Standards and Technology) zaman referansları
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. International Organization for Standardization. (2019). ISO 8601:2019 Date and time — Representations for information interchange. Geneva: ISO.
- 2. Reingold, E. M., & Dershowitz, N. (2018). Calendrical Calculations: The Ultimate Edition. Cambridge University Press.
- 3. ECMA-262 ECMAScript Language Specification. Date Objects and Time Values.
- 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ı