要这样才可以
for(int i=0;i<7;i++){
Calendar calendar=Calendar.getInstance();
calendar.add(calendar.DATE, type*7); 
lWeek.add(calendar);
calendar.add(calendar.DATE, 1);
}
但这样不好,不知道你想干嘛

解决方案 »

  1.   

    for(int i=0;i<al.size();i++){
      Calendar calendar=(Calendar) al.get(0);改成
    for(int i=0;i<al.size();i++){
      Calendar calendar=(Calendar) al.get(i);太粗心 了
      

  2.   

    感谢xp1204 ,不过,能说为什么这样做不好吗?我的目的就是传入这个type。返回一个List,这个List里放的是7个Calendar 。通过传入的type就可以得到任一周的日历了
    也谢谢interpb,不过你的答案不正确,就算我改成i一样的。
      

  3.   

    interpb(曾曾胡,深怕情多累美人!) --------------------------正解
      

  4.   

    帮你过改了一下
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.List;public class CalendarEx {
    @SuppressWarnings("static-access")
    public static List getWeek(int type) {
    Calendar calendar = null ;
    @SuppressWarnings("unused")

    List<Calendar> lWeek = new ArrayList<Calendar>();
    for (int i = 0; i < 7; i++) {
    calendar = Calendar.getInstance();
       calendar.add(calendar.DATE, type * 7);
    lWeek.add(calendar);
    calendar.add(calendar.DATE, i);
    }
    return lWeek;
    } public static void main(String[] args) throws IOException {
    List al = new ArrayList();
    al = getWeek(0);
    for (int i = 0; i < al.size(); i++) {
    Calendar calendar = (Calendar) al.get(i);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String str = sdf.format(calendar.getTime());
    System.out.println(str);
    System.out.println(calendar.get(Calendar.DAY_OF_WEEK) - 1);
    }
    }
    }
      

  5.   

    1.每次都要构造一个新的对象 然后放入list
    2.calendar.add(calendar.DATE, i);
    3.Calendar calendar = (Calendar) al.get(i);三个问题
      

  6.   

    你在写入的时候是写入的同一个Calendar对象,而在取值的时候,又是始终取的第一个,那不是一样才怪了。
    按二楼和三楼的改就可以了
      

  7.   

    public static void main(String[] args) throws IOException {
    List<Calendar > al = new ArrayList<Calendar >();//List al = new ArrayList();
    al = getWeek(0);
    for(Calendar calendar : al )//for (int i = 0; i < al.size(); i++) {
    //Calendar calendar = (Calendar) al.get(i);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String str = sdf.format(calendar.getTime());
    System.out.println(str);
    System.out.println(calendar.get(Calendar.DAY_OF_WEEK) - 1);
    }如上简单更改,要用泛型,就一直用.
      

  8.   

    感谢大家一片热心,问题解决啦,可惜我的分不多。不过来者有份!希望以后有问题大家继续帮忙!
    最后一楼的。for(Calendar  calendar  :  al  ),以前没用过,今天又学会一招了。谢谢