所以我有这个方法,roosterID 是用于根据当前年份和一年中的一周生成一个 ID,这是我想出的,但我认为这不是最好的方法,我尝试制作该方法在某些时候递归。这并没有按照我想要的方式工作。至少,我尝试过的方式。基本上说有一年有 53 周,我正在调用 rDAO 的加载方法,带有本周的 roosterID,以及接下来的 2 周。基本上,我希望 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);
}
}