Hallo,
also mein Problem. Ich habe eine Liste mit Kalenderwochen von 2007 bis 2010.
Ich hab einen funktion die mir das Datum auf den ersten Tag der KW legt. Dann lese ich die KW und das Jahr aus dem Datum
Hier mal ein Beispiel:
KW-52/2007
KW-01/2007
KW-02/2008
Die erste Kalenderwoche im Jahr 2008 fängt am 31.12.2007 an gehört aber zu 2008. Das Jahr ist 2007 sollte aber 2008 sein.
Kann mir jemand verraten wie ich den übergang sauber hinbekomme und zwar immer. Da muss es doch was geben.
So erstelle ich meine Liste
thx 4 help
also mein Problem. Ich habe eine Liste mit Kalenderwochen von 2007 bis 2010.
Ich hab einen funktion die mir das Datum auf den ersten Tag der KW legt. Dann lese ich die KW und das Jahr aus dem Datum
Hier mal ein Beispiel:
KW-52/2007
KW-01/2007
KW-02/2008
Die erste Kalenderwoche im Jahr 2008 fängt am 31.12.2007 an gehört aber zu 2008. Das Jahr ist 2007 sollte aber 2008 sein.
Kann mir jemand verraten wie ich den übergang sauber hinbekomme und zwar immer. Da muss es doch was geben.
Code:
public Date getStartDateOfKW(Date aDate) {
Calendar theCalendar = getNewSystemCalendarInstance();
theCalendar.setTime(aDate);
theCalendar.set(Calendar.DAY_OF_WEEK, theCalendar.getFirstDayOfWeek());
return theCalendar.getTime();
}
public Date rollDateKW(Date aDate, int aCount) {
Calendar theCalendar = getNewSystemCalendarInstance();
theCalendar.setTime(aDate);
theCalendar.add(Calendar.WEEK_OF_YEAR,aCount);
return theCalendar.getTime();
}
So erstelle ich meine Liste
Code:
DateUtilities theDateUtil = DateUtilities.getInstance();
Date theCurrentDate = theDateUtil.normalizeDate(new Date());
Date theBeginnDate = theDateUtil.rollDateYear(theCurrentDate, -2);
theBeginnDate = theDateUtil.getStartDateOfKW(theBeginnDate);
Date theEndDate = theDateUtil.rollDateYear(theCurrentDate, 1);
theEndDate = theDateUtil.getStartDateOfKW(theEndDate);
List<Date> theList = new ArrayList<Date>();
while(theBeginnDate.before(theEndDate)) {
int theKW = theDateUtil.getKW(theBeginnDate);
int theYear = theDateUtil.getYear(theBeginnDate);
...
theList.add(theBeginnDate);
theBeginnDate = theDateUtil.rollDateKW(theBeginnDate, +1);
}
return theList;
thx 4 help