だから私はこの方法を持っています.roosterIDは現在の年と週に基づいてIDを生成するためのものです.これは私が思いついたものですが、これが最善の方法だとは思いません.ある時点で再帰的なメソッド。それは私が望んでいたようには機能しませんでした。少なくとも、私が試した方法です。基本的に、53 週間ある年があるとします。現在の週と今後 2 週間の roosterID を使用して、rDAO の load メソッドを呼び出しています。基本的には、roosterID を 201353 の次の週に 20141 にしたいのですが、単純に roosterID+1 を使用すると 201354 になります。
以下のコードは機能しますが、ちょっと汚くて専門的ではないと思いますが、もっとうまくやれると思います。何か変更があれば、ほとんどすべてのコードをやり直さなければならないので、アドバイスが欲しいです。
public void getWeekTabs(){
gc.setFirstDayOfWeek(Calendar.MONDAY);
if(gc.get(Calendar.WEEK_OF_YEAR) <= gc.getWeeksInWeekYear()-2){
roosterID = Integer.parseInt(Integer.toString(gc.get(Calendar.YEAR)) + Integer.toString(gc.get(Calendar.WEEK_OF_YEAR)));
rDAO.load(roosterID);
rDAO.load(roosterID +1);
rDAO.load(roosterID +2);
}else if(gc.get(Calendar.WEEK_OF_YEAR) == gc.getWeeksInWeekYear()-1){
roosterIDtemp = Integer.parseInt(Integer.toString(gc.get(Calendar.YEAR) +1 ) + Integer.toString(1));
rDAO.load(roosterID);
rDAO.load(roosterID +1);
rDAO.load(roosterIDtemp);
}else if(gc.get(Calendar.WEEK_OF_YEAR) == gc.getWeeksInWeekYear()){
roosterIDtemp = Integer.parseInt(Integer.toString(gc.get(Calendar.YEAR) +1 ) + Integer.toString(1));
rDAO.load(roosterID);
rDAO.load(roosterIDtemp);
rDAO.load(roosterIDtemp +1);
}
}