【问题标题】:Android Display a date of the weekAndroid 显示星期几
【发布时间】:2013-04-13 12:12:48
【问题描述】:

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

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

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

【问题讨论】:

  • 可以用这个方法calender.get(calender.DAY_OF_WEEK) 得到今天的星期
  • 是的,我也试过那个。它给了我一周中的日子,但是它从星期六开始。输出是这样的:sat-13 sun-07 mon-08 tues-09 wed-10 thu-11 fri-12 它非常接近.. 但星期六毁了它..
  • @elL 检查我的答案.. 我已经测试过,它正在工作

标签: android android-calendar android-date


【解决方案1】:

试试这个

   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]);
        }
}

【讨论】:

  • 嗯。它从星期六开始(也许是因为今天是星期六??)。即使我添加了这个date.setFirstDayOfWeek(GregorianCalendar.MONDAY);,结果也会是sat-06 sun-07 mon-08 tues-09 wed-10 thur-11 fri-12 ..hmm
  • date.set(GregorianCalendar.DATE, date.get(GregorianCalendar.DATE)-date.get(GregorianCalendar.DAY_OF_WEEK)+1); 在末尾添加 +1,因此输出日期将从 07 08 09 10 11 12 13 开始,第一天是 7
猜你喜欢
  • 1970-01-01
  • 2012-11-08
  • 2020-10-23
  • 1970-01-01
  • 2018-09-13
  • 1970-01-01
  • 2020-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多