0

我想通过单击一个按钮来显示一周中的一整天。动作将是这样的,例如假设月份是 2013 年 2 月,所以在第一次单击按钮时我想显示这几天。

3/11/2013, 4/11/2013, 5/11/2013, 6/11/2013, 7/11/2013, 8/11/2013, 9/11/2013

第二次单击按钮时,我想像这样显示

10/11/2013, 11/11/2013, 12/11/2013, 13/11/2013, 14/11/2013, 15/11/2013, 16/11/2013

同样,在每次单击按钮时,我都想以这种格式显示剩余的日子。那么如何做到这一点,我已经尝试过这段代码,但它会显示

3/11/2013, 4/11/2013, 5/11/2013, 6/11/2013, 7/11/2013, 8/11/2013, 9/11/2013 

我使用的代码

Calendar c = Calendar.getInstance();

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

// 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.DAY_OF_MONTH, 1);
}
4

2 回答 2

1

您的几乎就在那里,只是添加c.add(Calendar.WEEK_OF_YEAR, week);以根据输入参数增加一周

public static void getDaysOfWeek(int week) {
    Calendar c = Calendar.getInstance();
    // Set the calendar to monday of the current week
    c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
    c.add(Calendar.DATE, week * 7);
    // 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.DAY_OF_MONTH, 1);
    }
}

使用上述方法获取星期几。只需将第一次传递给方法,将 1 传递给下一次单击,依此类推。您将获得一周中的相应日期。

于 2013-02-08T06:41:08.170 回答
0
public static void main(String[] args) {
    int next = 1;
    for(int i =0 ;i< 4 ;i++)
    weekOfGivenMonth(next++);
}

private static void weekOfGivenMonth(int weekNext) {

    Calendar c = Calendar.getInstance();

    c.set(Calendar.WEEK_OF_MONTH, weekNext);

    DateFormat df = new SimpleDateFormat("EEE dd/MM/yyyy");
    for (int i = 0; i < 7; i++) {
        System.out.println(df.format(c.getTime()));
        c.add(Calendar.DATE, 1);
    }

}

试试这个我根据你的要求编辑的。我使用循环而不是你应该使用按钮来调用该月的第二周、第三周和第四周。

于 2013-02-08T07:08:57.867 回答