获取当前一周日期的正确方法
Right way of getting dates for a current week
我有一个方法应该将当前周的所有日期放入数组中。
它是这样的:
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);
}
}
但是当今天是星期天时,它会给出下一周的日期,而不是星期天之前的那个。
这是我想出的:
编辑:尝试添加 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);
}
}
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 天。
我已经评论了你的原始代码并替换了该行。原始行不断更改初始选择的当前日期。
我有一个方法应该将当前周的所有日期放入数组中。 它是这样的:
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);
}
}
但是当今天是星期天时,它会给出下一周的日期,而不是星期天之前的那个。
这是我想出的: 编辑:尝试添加 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);
}
}
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 天。
我已经评论了你的原始代码并替换了该行。原始行不断更改初始选择的当前日期。