2017-07-19 13 views
0

これは私が2017-07-17から2017-07-23のような与えられた時間形式で現在の週の日付を取得している私のコードです。アンドロイドで次週と前週の日付を取得する方法

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

これは私が次の週と前の週の日付を表示する必要があり、そこから私のコードで私はアンドロイドで新しいですか週の日付を増減に私を提案してください。前の週のために来週

答えて

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);次のためにgetCurrentWeekDate(-1);それ以前は? – Adevelopment

+0

しかし、私は前のボタンをクリックして前のボタンをクリックして前のボタンをクリックすると前のボタンをクリックしなければならないことを前提にしておく必要があります。現在の週が表示されます。 – Adevelopment

+0

私の答えをもう一度チェックしてください。私はこのメソッドをパラメータとしてweekを受け入れるようにしました。基本的に '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; if(v.getId()== R.id.previousButtonView){ i = i + 6; getCurrentWeekDate(i); (v.getId()== R.id.nextButtonView) { i = 6; getCurrentWeekDate(i); }それがうまく動作していない – Adevelopment

+0

毎回その現在の日付を与える – Adevelopment

+0

何が問題になっています。 –

関連する問題