获得本周日期的正确方法

时间:2017-08-08 09:21:02

标签: java android date calendar dayofweek

我有一个方法应该将当前周的所有日期都放在数组中。 这是它的样子:

private void initWeek()
    {
        Calendar calendar = Calendar.getInstance();
        week_dates = new String[7];

        SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.US);
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

        for (int i = 0; i < 7; i++)
        {
            week_dates[i] = dateFormat.format(calendar.getTime());
            calendar.set(Calendar.DAY_OF_WEEK, i);

        }
    }

但是当当天是星期天时,它会在下周提供日期,而不是在星期日之前的日期。

2 个答案:

答案 0 :(得分:1)

这是我提出的: 编辑:尝试添加Calendar.DATE

private void initWeek()
{
    Calendar calendar = Calendar.getInstance();
    week_dates = new String[7];

    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.US);
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

    for (int i = 0; i < 7; i++)
    {
        week_dates[i] = dateFormat.format(calendar.getTime());
        calendar.add(Calendar.DATE, 1);

    }
}

答案 1 :(得分:1)

for (int i = 0; i < 7; i++)
{
  week_dates[i] = dateFormat.format(calendar.getTime());
  //calendar.set(Calendar.DAY_OF_WEEK, i);
  calendar.add(Calendar.DATE, 1);
}

使用Calendar.DATE,从您在元素0中指定的星期一起增加1天。

我已经评论了您的原始代码并替换了该行。原始行保持更改初始选定的当前日期。