2017-07-19 105 views
0
public String getCurrentWeekDate() { 
    Calendar c = GregorianCalendar.getInstance(); 
    System.out.println("Current week = " + Calendar.DAY_OF_WEEK); 
    c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
    System.out.println("Current week = " + Calendar.DAY_OF_WEEK); 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); 
    String startDate = "", endDate = ""; 
    startDate = df.format(c.getTime()); 
    c.add(Calendar.DATE, 6); 
    endDate = df.format(c.getTime()); 
    System.out.println("Start Date = " + startDate); 
    System.out.println("End Date = " + endDate); 

    return ""; 
} 

这是我的代码,我从中得到本周的日期在给定的时间格式,如2017-07-17至2017-07-23。如何获取下一个和上一个星期的日期在Android

if (v.getId() == R.id.previousButtonView) { 
    getCurrentWeekDate(); 
} else if (v.getId() == R.id.nextButtonView) { 
    getCurrentWeekDate(); 
} 

这是我的代码,我有显示下周前一周日期请建议我如何增加和减少每周日我在android系统是新的。

回答

1

对于下周calendar.add(Calendar.DAY_OF_WEEK, 1);

对于前一周calendar.add(Calendar.DAY_OF_WEEK, -1);

public void getCurrentWeekDate(int week) { 
    Calendar c = GregorianCalendar.getInstance(); 
    c.setFirstDayOfWeek(Calendar.MONDAY); 
    c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); 
    c.add(Calendar.DAY_OF_WEEK, week); 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); 
    String startDate; 
    String endDate; 
    startDate = df.format(c.getTime()); 
    c.add(Calendar.DAY_OF_MONTH, 6); 
    endDate = df.format(c.getTime()); 
    System.out.println("Start Date = " + startDate); 
    System.out.println("End Date = " + endDate); 
} 
+0

getCurrentWeekDate(1); for next和getCurrentWeekDate(-1);以前是吗? – Adevelopment

+0

但我必须保持假设,如果点击之前,那么它应该再次显示前一个,我们点击上一个按钮,然后像前一个星期那样,如果点击下一个,然后再前一个星期到前一个星期,然后再次点击下一个星期,然后再点击它应该显示当前的一周。 – Adevelopment

+0

再次检查我的答案。我让方法接受一周作为参数。基本上,如果你调用'getCurrentWeekDate(0)',它表示本周,'getCurrentWeekDate(1)''下周,'getCurrentWeekDate(-1)'前一周。 – santalu

0

既然你已经找到本周的日期,所有你需要做的就是减去7天为前一周的日期,加上7天为下周的日期。

你可以通过下面的代码

int x = -7; 
Calendar cal = GregorianCalendar.getInstance(); 
cal.add(Calendar.DAY_OF_YEAR, x); 
Date sevenDaysAgo = cal.getTime(); 

所以,你的代码看起来像下面 -

public void getCurrentWeekDate(int week) { 
    Calendar c = GregorianCalendar.getInstance(); 
    System.out.println("Current week = " + Calendar.DAY_OF_WEEK); 
    c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
    System.out.println("Current week = " + Calendar.DAY_OF_WEEK); 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); 
    String startDate; 
    String endDate; 
    startDate = df.format(c.getTime()); 

    // previous week calculation 
    Calendar previousWeekCalendar = c; 
    previousWeekCalendar.add(Calendar.DAY_OF_YEAR, -7); 
    startPreviousWeekDate = df.format(previousWeekCalendar.getTime()); 
    previousWeekCalendar.add(Calendar.DATE, 6); 
    endPreviousWeekDate = df.format(previousWeekCalendar.getTime()); 

    c.add(Calendar.DATE, 6); 
    //for previous week 
    //c.add(Calendar.DAY_OF_WEEK, -1); 
    //for next week 
    c.add(Calendar.DAY_OF_WEEK, week); 
    endDate = df.format(c.getTime()); 


    // Do next week calculation same as previous week. Just check what is the value of c before starting the calculation 
    System.out.println("Start Date = " + startDate); 
    System.out.println("End Date = " + endDate); 
    System.out.println("End Date = " + endDate); 

} 
+0

i = 6; (v.getId()== R.id.previousButtonView){i = i + 6; getCurrentWeekDate(i); (v.getId()== R.id.nextButtonView) { i = i-6; getCurrentWeekDate(i); }它不工作亲爱的 – Adevelopment

+0

每次它给出当前日期 – Adevelopment

+0

什么是问题到来。请添加您的修改后的代码,供我进行调试:) –

相关问题