2016-01-05 25 views
8

Aşağıdaki kod, belirli bir tarihin çalışma gününü hesaplar.Java Takvim’de haftada bir hata mı?

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Calendar cal = new GregorianCalendar(); 
cal.setTime(df.parse("2015-12-27 08:00:00")); 
System.err.printf("%d.%02d\n", cal.getWeekYear(), cal.get(Calendar.WEEK_OF_YEAR)); 

Şu anda 2016.01 yazdırır. Ben çalışma haftası numarası şartname anlamak gibi

, 2016,01 2016 yılında 4 gün olan ilk hafta, ama böyle haftaya ait olabilir hiçbir şekilde 27 Aralık yoktur.

hafta Pazartesi günü başlayacak varsayarak herhangi yıl için çalışacak Java 7 bunu yapmanın bir yolu var mı? Haftanın ilk günü olarak Pazartesi ayarı

+5

Hafta kuralları tüm dünyada farklı, hangi yerel ayarlardasınız? – nos

+3

Ve cal.getFirstDayOfWeek() ', cal.getMinimalDaysInFirstWeek()' ile birlikte sizin için ne döndürüyor? –

+0

@JonSkeet, 1'e ayarlanmıştı, 4'e ayarladım. – Evgeny

cevap

6

deneyin.

cal.setFirstDayOfWeek(Calendar.MONDAY); 
+0

Ayrıca cal.setMinimalDaysInFirstWeek (4); – Evgeny