2013-05-05 19 views
5

私は今週の日付を取得したい今日の平日の日付を取得する

今日は火曜日07.05.2013です。今週の日付と日付のリストを取得したい

どうすればいいですか?

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 

答えて

15

このコードは、日曜日と異なる場合がありますシステムの週の最初の日を、使用して動作します。

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

はい、コードは日曜日から始まります。どうすれば月曜日から始めることができますか? 'setFirstDayOfWeek(Calendar.MONDAY);'は06.05を開始します。今日は日曜日です05.05。私はそれが月曜日29.04を開始し、最終日は日曜日05.05になることを意味します。出来ますか ? – metemet06

+0

ユーザーの現在のロケール設定に関係なく、同じ方法でコードを動作させますか?はいの場合は、たとえば、「Calendar」インスタンスを使用します。英国のロケール: 'Calendar cal = Calendar.getInstance(Locale.UK)'。英国ロケールの最初の曜日は月曜日です。さもなければあなたのコードはそれぞれ現在のロケールとあなたのロケールを動作させて、週の最初の日として日曜日を指定します。 – andrew

1

これを試してみてください - >

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

ありがとうございます、特定の日付(07.05.2013)を使用する代わりに、どのように現在の日付にこれを行うことができます。現在の日付が今週の週を取得したいということです。 – metemet06

+0

このようにすることができます - > 'c.set(Calendar.DAY_OF_MONTH、new Date()。getDate()); c.set(Calendar.MONTH、new Date()。getMonth()); c.set(Calendar.YEAR、new Date()。getYear()); ' –

+0

日曜日の代わりに最初の日の月曜日を作るためにとにかくあります...私は' cal.setFirstDayOfWeek(Calendar.MONDAY);を使いました '月曜日から今日は日曜日05.05.2013ですが、リストは月曜日から始まります。06.05.2013 ...しかし、日曜日は最終日ですが、週を取ることができますか? – metemet06

関連する問題