2015-09-04 8 views
8

Wie kann ich eine Tagesnummer von einem bestimmten Datum mit Kalender-API erhalten.Spezifische Tagesnummer mit Java Kalender-API

Beispiel:
02/01/2016 ist der erste Samstag im Jahr 2016 (Ergebnis 1)
10/01/2015 ist der zweite Samstag im Jahr 2015 (Ergebnis 2)

Ich dachte, ich die Wochennummer verwenden kann

int week = calendar.get(Calendar.WEEK_OF_YEAR); 

Aber es funktioniert nicht, wenn wir ein Präzedenzfall Jahr von 53 Wochen haben

Beispiel: 09/01/2016 wird 1 zurück, wenn es der zweite Samstag 2016

+0

Bewar e dass die Definition von Calendar.WEEK_OF_YEAR je nach Gebietsschema variiert. –

+0

Sie haben nicht definiert, was eine Woche für Sie bedeutet. Meinst du die [ISO 8601] (https://en.wikipedia.org/wiki/ISO_week_date) Standarddefinition (erster Donnerstag des Kalenderjahres ist Woche # 1, beginnend an einem Montag)? Oder meinst du, Woche 1 hat den 1. Januar? Oder Woche 1 hat den ersten Sonntag oder einen anderen Wochentag? Etwas anderes? –

Antwort

0

ist es gelöst mit setMinimalDaysInFirstWeek()

1 - Ich nehme die Woche Nummer wie ich es brauche: int weekNbr = cal.get(Calendar.WEEK_OF_YEAR);

2 - Ich habe die Anzahl der Tage in der ersten Woche bis 1: cal.setMinimalDaysInFirstWeek(1);

3- Wochennummer wird nun die korrekte Anzahl Wochenende reflektieren: int weekendNbr = cal.get(Calendar.WEEK_OF_YEAR);

Verwandte Themen