Java Android日历获取当前周、前几周和下几周

Java Android日历获取当前周、前几周和下几周,java,android,Java,Android,我正在尝试检索一周中的当前日期,即:周一至周日。然后,我有两个按钮,“上一周”和“下一周”,用于检索下一周和上一周的日期。这将使我能够无限期地在一年中的几周中轮换 上周:2017/05/8-2017/05/14 加载周:2017/05/15-2017/05/21 下周:2017/05/22-2017/05/28 代码加载中间日期Mon Sun。当我按下“下一步”按钮时,我会进入下一周的下几天。当我从这里点击上一个时,它跳过最初加载的一周并跳到下一周的日期。当我使用“上一个到下一个”的相反方法时,

我正在尝试检索一周中的当前日期,即:周一至周日。然后,我有两个按钮,“上一周”和“下一周”,用于检索下一周和上一周的日期。这将使我能够无限期地在一年中的几周中轮换

  • 上周:2017/05/8-2017/05/14
  • 加载周:2017/05/15-2017/05/21
  • 下周:2017/05/22-2017/05/28
  • 代码加载中间日期Mon Sun。当我按下“下一步”按钮时,我会进入下一周的下几天。当我从这里点击上一个时,它跳过最初加载的一周并跳到下一周的日期。当我使用“上一个到下一个”的相反方法时,也会发生同样的情况。当我继续点击下一个和上一个按钮时,它们不会继续加载新的星期

    我做错了什么

    初始荷载代码:

    DateFormat format = new SimpleDateFormat("M-dd");
    Calendar calendar = Calendar.getInstance();
    calendar.setFirstDayOfWeek(Calendar.MONDAY);
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    
    days = new String[7];
    for (int i = 0; i < 7; i++)
    {
        days[i] = format.format(calendar.getTime());
        calendar.add(Calendar.DAY_OF_MONTH, 1);
    }
    
    DateFormat format = new SimpleDateFormat("M-dd");
    calendar = Calendar.getInstance();
    calendar.setFirstDayOfWeek(Calendar.MONDAY);
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    
    days = new String[7];
    for (int i = 0; i < 7; i++)
    {
        days[i] = format.format(calendar.getTime());
        calendar.add(Calendar.DAY_OF_MONTH, 1);
    }
    
    下周代码:

    DateFormat format = new SimpleDateFormat("M-dd");
    Calendar calendar = Calendar.getInstance();
    calendar.setFirstDayOfWeek(Calendar.MONDAY);
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    calendar.add(Calendar.DAY_OF_MONTH, 7);
    
    days = new String[7];
    
    for (int i = 0; i < 7; i++)
    {
        days[i] = format.format(calendar.getTime());
        calendar.add(Calendar.DAY_OF_MONTH, 1);
    }
    
    DateFormat format = new SimpleDateFormat("M-dd");
    Calendar calendar = Calendar.getInstance();
    calendar.setFirstDayOfWeek(Calendar.MONDAY);
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    calendar.add(Calendar.DAY_OF_MONTH, -7);
    
    days = new String[7];
    
    for (int i = 0; i < 7; i++)
    {
        days[i] = format.format(calendar.getTime());
        calendar.add(Calendar.DAY_OF_MONTH, 1);
    }
    
    DateFormat format = new SimpleDateFormat("M-dd");
    calendar.setFirstDayOfWeek(Calendar.MONDAY);
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    calendar.add(Calendar.DAY_OF_MONTH, 7);
    
    days = new String[7];
    
    for (int i = 0; i < 7; i++)
    {
        days[i] = format.format(calendar.getTime());
        calendar.add(Calendar.DAY_OF_MONTH, 1);
    }
    
    DateFormat format = new SimpleDateFormat("M-dd");
    calendar.setFirstDayOfWeek(Calendar.MONDAY);
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    calendar.add(Calendar.DAY_OF_MONTH, -7);
    
    days = new String[7];
    
    for (int i = 0; i < 7; i++)
    {
        days[i] = format.format(calendar.getTime());
        calendar.add(Calendar.DAY_OF_MONTH, 1);
    }
    
    DateFormat格式=新的SimpleDataFormat(“M-dd”);
    日历:setFirstDayOfWeek(日历:周一);
    calendar.set(calendar.DAY\u OF_WEEK,calendar.MONDAY);
    calendar.add(calendar.DAY/u/u月,7);
    天=新字符串[7];
    对于(int i=0;i<7;i++)
    {
    天[i]=format.format(calendar.getTime());
    calendar.add(calendar.DAY/u/u月,1);
    }
    
    上周代码:

    DateFormat format = new SimpleDateFormat("M-dd");
    Calendar calendar = Calendar.getInstance();
    calendar.setFirstDayOfWeek(Calendar.MONDAY);
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    calendar.add(Calendar.DAY_OF_MONTH, 7);
    
    days = new String[7];
    
    for (int i = 0; i < 7; i++)
    {
        days[i] = format.format(calendar.getTime());
        calendar.add(Calendar.DAY_OF_MONTH, 1);
    }
    
    DateFormat format = new SimpleDateFormat("M-dd");
    Calendar calendar = Calendar.getInstance();
    calendar.setFirstDayOfWeek(Calendar.MONDAY);
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    calendar.add(Calendar.DAY_OF_MONTH, -7);
    
    days = new String[7];
    
    for (int i = 0; i < 7; i++)
    {
        days[i] = format.format(calendar.getTime());
        calendar.add(Calendar.DAY_OF_MONTH, 1);
    }
    
    DateFormat format = new SimpleDateFormat("M-dd");
    calendar.setFirstDayOfWeek(Calendar.MONDAY);
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    calendar.add(Calendar.DAY_OF_MONTH, 7);
    
    days = new String[7];
    
    for (int i = 0; i < 7; i++)
    {
        days[i] = format.format(calendar.getTime());
        calendar.add(Calendar.DAY_OF_MONTH, 1);
    }
    
    DateFormat format = new SimpleDateFormat("M-dd");
    calendar.setFirstDayOfWeek(Calendar.MONDAY);
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    calendar.add(Calendar.DAY_OF_MONTH, -7);
    
    days = new String[7];
    
    for (int i = 0; i < 7; i++)
    {
        days[i] = format.format(calendar.getTime());
        calendar.add(Calendar.DAY_OF_MONTH, 1);
    }
    
    DateFormat格式=新的SimpleDataFormat(“M-dd”);
    日历:setFirstDayOfWeek(日历:周一);
    calendar.set(calendar.DAY\u OF_WEEK,calendar.MONDAY);
    calendar.add(calendar.DAY/u/u月,-7);
    天=新字符串[7];
    对于(int i=0;i<7;i++)
    {
    天[i]=format.format(calendar.getTime());
    calendar.add(calendar.DAY/u/u月,1);
    }
    
    我通过调用:Calendar Calendar=Calendar.getInstance()计算出;每次都把日历弄糊涂了


    解决方案是删除Calendar=Calendar.getInstance();从上一个和下一个代码中实现一个可变日历;在代码的开头。我将使用解决方案编辑原始代码。

    “我做错了什么?”您不记得自己在哪里。您的“下周代码”将始终在下周获得,相对于今天,而不是相对于当前显示的周。您建议我如何修复它?不要“使用解决方案编辑原始代码”。这就是答案所在。目前看来,这个答案只不过是一个评论。