在周模式android上显示错误的日期

时间:2013-04-22 09:14:30

标签: java android date calendar

我使用以下代码显示一周中的所有日期,但每当我选择一周的最后一个日期时,它会打印下周的日期。为什么会发生这种情况,我的代码中出现了问题。

/**Calendar week start on monday**/

        Calendar selectedDate = Calendar.getInstance(Locale.US);        
        // Set current date to 21-april-2013
        selectedDate.set(selectedDate.get(Calendar.YEAR), selectedDate.get(Calendar.MONTH), 21);

        // create another instance of calendar      
        Calendar c = Calendar.getInstance(Locale.US);
        // set current date to this new calendar instance
        c = (Calendar) selectedDate.clone();

        // Set the calendar to monday of the current week   
        c.setFirstDayOfWeek(Calendar.MONDAY);
        c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

        // Print dates of the current week starting on Monday
        DateFormat df = new SimpleDateFormat("dd/MM/yyyy", Locale.US);
        for (int i = 0; i < 7; i++) 
        {
            System.out.println(df.format(c.getTime()));
            c.add(Calendar.DATE, 1);
        }

OutPut显示日期

2013年4月22日至2013年4月28日

但它应该是

2013年4月15日至2013年4月21日

3 个答案:

答案 0 :(得分:0)

您的开始日期是4月21日。

for (int i = 0; i < 7; i++) 
{
    System.out.println(df.format(c.getTime()));
    c.add(Calendar.DATE, 1);
}

这可以解释为什么你的日期会遇到未来=)

答案 1 :(得分:0)

您将日期设置为21,这是星期日..

设置

c.setFirstDayOfWeek(Calendar.MONDAY);

它将于2013年4月15日

所以,c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);显然设定为15-april-13

答案 2 :(得分:0)

您的代码在我的系统中正常运行

enter image description here

相关问题