2017-07-19 3 views
0

das ist mein code, aus dem ich aktuelle woche daten in gegebener zeit format wie 2017-07-17 zu 2017-07-23 bekommen.wie man das nächste und vorherige woche daten in android

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

dies ist mein Code, von dem ich Datum der nächsten Woche und letzte Woche anzuzeigen mir bitte vorschlagen, wie Woche Datum zu erhöhen und Abnahme i bin neu in Android.

Antwort

1

Für nächste Woche calendar.add(Calendar.DAY_OF_WEEK, 1);

Für Vorwoche 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); für next und getCurrentWeekDate (-1); für vorheriges ist es? – Adevelopment

+0

aber ich muss annehmen, dass, wenn Sie auf vorherige klicken, dann sollte es vorher wieder angezeigt werden, klicken wir auf vorherige Schaltfläche dann vor der vorherigen Woche, wenn klicken Sie dann auf nächste vorherige Woche auf vorherige Woche und dann klicken wir nächste Woche dann wieder Es sollte die aktuelle Woche anzeigen. – Adevelopment

+0

Überprüfen Sie meine Antwort erneut. Ich habe die Methode akzeptiert Woche als Parameter. Wenn Sie 'getCurrentWeekDate (0)' aufrufen, wird diese Woche "getCurrentWeekDate (1)" nächste Woche, "getCurrentWeekDate (-1)" letzte Woche angezeigt. – santalu

0

Da Sie bereits laufende Woche Datum gefunden, alles, was Sie tun müssen, ist für 7 Tage Vorwoche Daten subtrahiert und 7 Tage hinzu nächste Woche Datum.

können Sie tun, indem Sie folgenden Code

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

So Ihr Code wie folgt aussehen wird -

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); } sonst if (v.getId() == R.id.nextButtonView) { i = i-6; getCurrentWeekDate (i); } es funktioniert nicht lieber – Adevelopment

+0

jedes Mal gibt es aktuelles Datum – Adevelopment

+0

Was ist das Problem kommt. Bitte fügen Sie Ihren modifizierten Code für mich zu debuggen :) –

Verwandte Themen