2017-07-19 53 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

什麼是問題到來。請添加您的修改後的代碼,供我進行調試:) –

相關問題