2013-05-05 10 views
5

Ich möchte aktuelle Wochendaten erhaltenAktuelle Wochentage mit Daten erhalten

Lässt denken: Heute ist Dienstag 07.05.2013. Ich möchte eine Liste dieser Woche Tage mit Daten bekommen

Wie kann ich das tun?

Sunday 05.05.2013 
Monday 06.05.2013 
*Tuesday 07.05.2013 
Wednesday 08.05.2013 
Thursday 09.05.2013 
Friday 10.05.2013 
Saturday 11.05.2013 

Antwort

15

Dieser Code wird unter Verwendung von System erster Tag der Woche arbeiten, das könnte von Sonntag anders sein.

Calendar cal = Calendar.getInstance(); 
    cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek()); 
    SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd.MM.yyyy"); 

    for (int i = 0; i < 7; i++) { 
     Log.i("dateTag", sdf.format(cal.getTime())); 
     cal.add(Calendar.DAY_OF_WEEK, 1); 
    } 
+0

Ja, Code beginnt mit Sonntag, wie kann ich mit Montag anfangen? 'setFirstDayOfWeek (Calendar.MONDAY);' beginnt 06.05; obwohl heute ist Sonntag 05.05. Ich meine es würde Montag 29.04 beginnen und letzter Tag ist Sonntag 05.05. ist es möglich ? – metemet06

+0

Soll der Code unabhängig von den aktuellen Gebietsschemaeinstellungen des Benutzers auf dieselbe Weise funktionieren? Wenn ja, dann verwende einfach eine "Kalender" -Instanz für z. UK-Gebietsschema: 'Calendar cal = Calendar.getInstance (Locale.UK)'. UK Locale erster Tag der Woche ist Montag. Andernfalls wird in Ihrem Code bzw. in Ihrer aktuellen Ländereinstellung und in Ihrer Ländereinstellung der Sonntag als erster Wochentag angegeben. Sie haben also ein solches Verhalten, auch wenn Sie Montag als ersten Tag der Woche festlegen. – andrew

1

Try this ->

Calendar c = Calendar.getInstance(); 
c.set(Calendar.DAY_OF_MONTH, 5); 
c.set(Calendar.MONTH, 7); 
c.set(Calendar.YEAR, 2013); 

int weekNo = c.get(Calendar.WEEK_OF_YEAR); 
c.set(Calendar.WEEK_OF_YEAR, weekNo); 

c.clear(); 

c.set(Calendar.WEEK_OF_YEAR, weekNo); 
c.set(Calendar.YEAR, 2013); 


SimpleDateFormat formatter = new SimpleDateFormat("EEE dd/MM/yyyy"); 
Date startDate = c.getTime(); 
c.add(Calendar.DATE, 1); 
for (int i = 0; i < 5; i++) { 
    Log.d(formatter.format(c.getTime())); 
    c.add(Calendar.DATE, 1); 
} 
+0

danke, anstelle eines bestimmten Datums (07.05.2013), wie kann dies für das aktuelle Datum tun. Ich meine, ich möchte die Woche bekommen, die das aktuelle Datum ist in – metemet06

+0

Sie können dies tun-> 'c.set (Calendar.DAY_OF_MONTH, neues Date(). GetDate()); c.set (Calendar.MONTH, neues Date(). GetMonth()); c.set (Kalender.YEAR, neues Date(). GetYear()); ' –

+0

Gibt es sowieso, um ersten Tag Montag statt Sonntag zu machen ... Ich benutzte' cal.setFirstDayOfWeek (Calendar.MONDAY); 'Es beginnt ab montag aber zum beispiel heute ist der sonntag 05.05.2013, aber die liste startet montag 06.05.2013 ... aber ich möchte woche nehmen, dass sonntag letzter tag ist, ist das möglich? – metemet06