4

我想用那一周的日期显示星期几。就像今天一样,我想为我的日历显示是这样的:

Mon  Tues  Wed  Thurs  Fri  Sat   Sun
8    9     10    11    12   13    14 

然后,当另一个星期开始时,数字会发生变化。所以,我尝试了 android 日历类。所以我想出了这个:

TextView[] tx = {t1, t2, t3, t4, t5, t6, t7};

    SimpleDateFormat curFormater = new SimpleDateFormat("EEE dd"); 
    GregorianCalendar date = new GregorianCalendar();
    String[] dateStringArray = new String[7];

    for (int day = 0; day < 7; day++) {
        dateStringArray[day] = curFormater.format(date.getTime());
        date.roll(Calendar.DAY_OF_MONTH, true);
        System.out.println("HELLO WORLD DAYS: " + dateStringArray[day]);
        tx[day].setText(dateStringArray[day]);
    }

只是为了检查我是否可以实现我的目标。嗯,它接近我想要的。问题是,例如今天是星期六,输出是这样的:

Sat   Sun   Mon   Tue   Wed   Thur   Fri
13    14    15    16    17    18     19

然后,明天..我猜这会变成

Sun   Mon   Tue   Wed   Thur   Fri  Sat
14    15    16    17    18     19   20

因此,开始日期发生了变化。有没有一种方法可以帮助我实现目标。也许我在阅读文档时错过了这一点。请谢谢。任何帮助,将不胜感激。

4

1 回答 1

2

试试这个

   SimpleDateFormat curFormater = new SimpleDateFormat("EEE dd"); 
        GregorianCalendar date = new GregorianCalendar();
        String[] dateStringArray = new String[7];
             date.set(GregorianCalendar.DATE, date.get(GregorianCalendar.DATE)-date.get(GregorianCalendar.DAY_OF_WEEK));
        for (int day = 0; day < 7; day++) {
            dateStringArray[day] = curFormater.format(date.getTime());
            date.setFirstDayOfWeek(day);
            date.roll(Calendar.DAY_OF_MONTH, true);
            System.out.println("HELLO WORLD DAYS: " + dateStringArray[day]);
        }
}
于 2013-04-13T13:13:06.587 回答