Alıntılanabilir cevap
Ay sonu kendiliğinden sonraki aya taşmaz
Bir tarihe ay eklerken hedef ayda aynı gün yoksa sonuç kendiliğinden ertesi aya taşmamalı; araç seçilen politikaya göre ayın son gününe sınırlar veya hata döndürür.
31 Ocak + 1 ay
Başlangıç tarihi
2024-01-31.Hedef ay Şubat 2024 ve bu ay 29 gün.
Kaynak gün 31, hedef ayda bulunmuyor.
sinirla→2024-02-29veayinSonunaSinirlandi: true;reddet→GECERSIZ_HEDEF_GUN.
TC39 PlainDate.add taşma davranışı, constrain ve reject ayrımına ücretsiz bir dayanak sunar.
Formül dayanağı
Ay aşaması, negatif değerlerde de güvenli kalan sıfır tabanlı bir ay indeksi kullanır:
hedefAy0 = ((hedefToplamAy % 12) + 12) % 12
hedefYıl = (hedefToplamAy − hedefAy0) / 12
toplamTakvimGünü = ekHafta × 7 + ekGün
Gregoryen kuralı: yıl 400'e bölünürse artık; 100'e bölünürse değil; aksi hâlde 4'e bölünürse artıktır. Şubat böylece 28 veya 29 gün sürer.
TC39 BalanceISOYearMonth ayları 12 katsayısıyla dengeler; CalendarDateAdd hafta için 7 katsayısını gösterir; PlainDate.inLeapYear artık yıl kuralını verir.
Neden ara adımlar var?
Bu aracın kanonik ürün sözleşmesi yıl ve ayı ayrı uygular. 2024-02-29 + 1 yıl + 1 ay, önce 2025-02-28, sonra 2025-03-28 olur.
Bu sıra, tek bir Temporal.PlainDate.add({ years: 1, months: 1 }) çağrısıyla aynı değildir: TC39 algoritması yıl ve ayı birlikte dengeler. Burada ardışık uygulama bilinçli ve görünür bir araç kuralıdır.
Sık hatalar
- Her ayı 30 gün sanmak.
- Yerleşik
setMonthtaşmasını fark etmemek. - 29 Şubat ve 100/400 yıl istisnalarını atlamak.
- Yıl–ay işlem sırasını gizlemek.
- Takvim tarihi ile sabit süreyi karıştırmak.
- Sonucu iş günü hesabı sanmak.
TakvimAritmetik nasıl kullanılır?
-
Tarihi girin
Tarihi kesin YYYY-MM-DD biçiminde girin.
-
Bileşenleri girin
Eklenecek veya çıkarılacak yıl, ay, hafta ve gün değerlerini tam sayı olarak girin.
-
Politikayı seçin
Hedef ayda aynı gün yoksa sinirla veya reddet politikasını seçin.
-
Sonucu inceleyin
Hesapla düğmesine basın; kanonik tarihi, ara adımları ve JSON çıktısını inceleyin.
Sık sorulan sorular
Hedef ayda aynı gün yoksa ne olur?
Bir tarihe ay eklerken hedef ayda aynı gün yoksa sonuç kendiliğinden ertesi aya taşmamalı; araç seçilen politikaya göre ayın son gününe sınırlar veya hata döndürür.
İşlem sırası nedir?
İşlem sırası sabittir: önce yıl, sonra ay, ardından hafta ve gün uygulanır. Yıl ve ay aşamalarının her biri kendi taşma kontrolünü yapar.
29 Şubat nasıl ele alınır?
Hedef yılda 29 Şubat yoksa sinirla 28 Şubat'ı kullanır; reddet GECERSIZ_HEDEF_GUN hatası döndürür.
İş günü veya iki tarih arasındaki fark hesaplanır mı?
Hayır. Bu araç tek bir tarihe takvim bileşenleri ekler veya çıkarır; iş günü saymaz ve iki tarih arasını ölçmez.
Kaynaklar ve kapsam
- TC39 Temporal PlainDate: taşma seçenekleri, ay gün sayıları, 7 günlük hafta ve artık yıl.
- TC39 CalendarDateAdd: normatif yıl/ay dengeleme ve hafta × 7 işlemi; aracın ayrı yıl–ay politikasından farkı yukarıda belirtilmiştir.
- ISO 8601-1:2019 katalog sayfası: [KAYNAK-DOĞRULANMADI] doğrudan erişim 403 verdi ve standardın tam metni okunmadı. Kesin YYYY-MM-DD kabulü bu aracın ürün sözleşmesidir; ISO tam metnine erişilmiş gibi sunulmaz.
- Microsoft — Add or subtract dates: gün, ay ve yıl ekleme ihtiyacına talep kanıtı.
- HepHesapla Türkçe örneği: gün/hafta/ay/yıl ekleme ve 30 gün–1 ay ayrımına rekabet örneği; motor davranışı için normatif kaynak değildir.
- U.S. Naval Observatory — Leap Years: Gregoryen 4/100/400 artık yıl kuralı.
Kapsam ayrımı: Bu araç iki tarih arasını ölçmez ve iş günü saymaz. Bunlar sırasıyla mevcut TarihArasi ve IsGunu araçlarının kapsamıdır.