2013-05-30 6 views
8

, takvimi veJava'nın Takvimi.DAY_OF_WEEK_IN_MONTH maks. Değeri 6'dır. Bu doğru mu? Bir <em>java.util.GregorianCalendar</em> nesnesi oluşturarak Başlık devletler gibi

calendar.getMaximum(Calendar.DAY_OF_WEEK_IN_MONTH) 

o 6 döndürür çalışan diyelim! Bildiğim kadarıyla, bu 5 olmalıdır, çünkü calendar.getMaximum(Calendar.DAY_OF_MONTH) 31 ve 31/7 == 4'e eşittir, yani en fazla 5 hafta vardır ve bu nedenle bir ayda en fazla 5 kez olabilir.

Burada bir şey mi özlüyorum?

cevap

2

javadoc durumları:

Örneğin

, ayda 31 gün olması durumunda, DAY_OF_WEEK_IN_MONTH -1 DAY_OF_WEEK_IN_MONTH 5 üst üste ve 4.

Bu kabul sonu, maksimum değer olduğu 5 olabilir. Altı değer için bir nedene sahip olmak için, tarih/saat düzeltmeleriyle bile olmamalı olan 36 gün ile bir ay olmalı. En azından Gregoryen takvimi hakkında bilgi kontrol etmek gibi bir şey bulamadım.

Yani evet, maksimum değeri olmalıdır 5.


Düzenleme: Ben de referans uygulamasının kaynağını kontrol ettik ve değer için hiçbir neden yoktur 6.

+0

DAY_OF_WEEK_IN_MONTH 5 tarihinden sonraki hafta 6 değerini göstereceğine dair bir işaret bulunmadığı anlamına mı geliyor? (javadocs'ın duygusunu izleyerek * DAY_OF_WEEK_IN_MONTH 0, DAY_OF_WEEK_IN_MONTH 1 * haftasından önceki haftayı gösterir, ki bu bana göre, zaten çok iyi yazılmadı) – user2435660

+0

@ user2435660 Bu alanın daha büyük bir değere atanacağı anlamına gelmiyor 5. Ayrıca, “add (DAY_OF_WEEK_IN_MONTH, amount)” ifadesini çağırırsanız, örneğin, maksimum değerin ne olduğu önemli değildir - sadece * 7 'gün miktarını ekler/çıkarır. – Mifeet

1

Haklısınız, bu hiç mantıklı değil. DAY_OF_WEEK_IN_MONTH'un 6 olması için, 6 Pazartesileri içeren bir ay olması gerekir (örneğin).

0

neden 6 değil 5 neden ingilizce takviminde, bir hafta için gün başlıyor Pazar. Örneğin, bir ayın ilk günü ise, 1 Temmuz Pazar günü diyelim, o zaman 2 Temmuz önümüzdeki hafta. Temmuz ayından beri 31 gündür, 6 haftaya denk geliyorsunuz.

+0

Haftanın ilk günü olarak hangi günün dikkate alınacağı gerçekten önemli değil. Belirli bir Tarih için, * DAY_OF_WEEK_IN_MONTH * öğesinin, bu ay içinde ilgili hafta içi gününün 1., 2., 3., ctra olayı olup olmadığını gösterir. Dolayısıyla, maksimum sayı, bir ay içinde * aynı * hafta gününün olası maksimum sayısı olmalıdır. İşletim sisteminizin takvimini kontrol ederseniz, bir ayın * 6 hafta * geçebilse bile, tüm bu 6 hafta boyunca * aynı * hafta içi gününü bulamadığını doğrulayacaksınız. – user2435660

İlgili konular