最近做个东西,要求统计出当年有多少个周,并列出那些周的日期,百度一把发现
只有计算当前日期的是第几周,int currentWeekOfYear = cal.get(Calendar.WEEK_OF_YEAR);那位大神,给小弟说道,怎么弄呢?谢谢

解决方案 »

  1.   

    import java.text.SimpleDateFormat;
    import java.util.Calendar;public class WeekList { private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    public static String[] getWeeksInYear(int year){
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, year+1);
    cal.set(Calendar.MONTH, 0);
    cal.set(Calendar.DAY_OF_MONTH, 1);
    cal.set(Calendar.HOUR_OF_DAY, 1);
    cal.add(Calendar.DAY_OF_MONTH, -(6+cal.get(Calendar.DAY_OF_WEEK)));
    int weeks = cal.get(Calendar.WEEK_OF_YEAR);
    String[] days = new String[weeks];
    for(int i=weeks-1;i>=0;i--){
    days[i] = sdf.format(cal.getTime());
    cal.add(Calendar.WEEK_OF_YEAR, -1);
    }
    return days;
    }
    /**
     * 测试用例
     */
    public static void main(String[] args) {
    int year = 2013;
    String[] days = getWeeksInYear(year);
    for(String day:days){
    System.out.println(day);
    }
    }}