2016-10-28 11 views
0

アンドロイドアプリでマテリアルカレンダービューを実装しています。ユーザーはカレンダーの特定の日付を選択できます。週の完全なリストを取得するには例えば、特定の選択した日付アンドロイドで特定の日の曜日のリストを取得する方法

日間:ユーザーが日付として22を選択した場合、どのように私は22が存在

+0

を試してください:あなたはその日の曜日を取得したい場合は、 Calendar.getInstance().set(year, month, day); int dayOfWeek = Calendar.getInstance().DAY_OF_WEEK;

文献を使用することができます。 – Tauqir

+0

私はライブラリとしてhttps://github.com/prolificinteractive/material-calendarviewを使用していますが、何か助けやアイデアはありますか? –

+0

代わりにcaldroidライブラリを試してください。簡単にカスタマイズすることができます。 – Tauqir

答えて

0

であるカレンダーからその行の曜日を取得しますあなたの要件が不明確です。 https://developer.android.com/reference/java/util/Calendar.html

+0

の曜日ではない、私はカレンダーの行から日のリストを取得する必要があります選択された日付に対応...たとえば、ユーザーが10月22日を選択したと仮定して、22日が過ぎている残りの週の日曜日を調べる必要があるとします。 –

+0

2216年2016年を意味し、{16,17 、...、22}これは好きですか? –

+0

彼は1,8,15,22,29を望んでいます。 –

0

は、私はあなたが要件ごとにカレンダーをカスタマイズする必要があると思うこの

public String[] getWeekDaySelected(String selectedDateStr) { 

     Calendar cal = Calendar.getInstance(); 

     try { 
      Date startDate = sdf.parse(sdf.format(cal.getTime())); 
      Date endDate = sdf.parse(selectedDateStr); 
      weekDaysCount = Functions.getWeeksBetween(startDate, endDate); 

     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 


     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
     String[] days = new String[7]; 
     // set the011, 10 - 1, 12); 
     String[] arr = selectedDateStr.split("-"); 
     cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(arr[2])); 
     cal.set(Calendar.MONTH, (Integer.parseInt(arr[1]) - 1)); 
     cal.set(Calendar.YEAR, Integer.parseInt(arr[0])); 
     Calendar first = (Calendar) cal.clone(); 
     first.add(Calendar.DAY_OF_WEEK, first.getFirstDayOfWeek() - first.get(Calendar.DAY_OF_WEEK)); 
     first.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 

     // and add six days to the end date 
     Calendar last = (Calendar) first.clone(); 
     last.add(Calendar.DAY_OF_YEAR, 6); 

     // print the result 
     SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
     System.out.println(df.format(first.getTime()) + " -> " + 
       df.format(last.getTime())); 

     for (int i = 0; i < 7; i++) { 
      days[i] = format.format(first.getTime()); 
      first.add(Calendar.DAY_OF_MONTH, 1); 
     } 
     return days; 

    } 
+0

あなたが知っておいてください –

+0

この行は何を意味していますか?次の行の関数は何ですか?weekDaysCount = Functions.getWeeksBetween(startDate、endDate); –

関連する問題