title: how to iterate the days in java
body: <p>I am having doubt that how can i iterate through the days in java (Android). Requirement is i am displaying whole week dates.</p>
  
  <p><strong>Note:</strong>  "whichever date user selects from it should start".</p>
  
  <p>ex: If date is 29-10-2017 then the output will be 29-10-2017, 30-10-2017, 31-10-2017, 1-11-2017, 2-11-2017, 3-11-2017, 4-11-2017.
  This is whole week.</p>
  
  <p>I was able to get this result when dates are inside that month, but when dates are exceeding the month or year, i am not able to resolve them.
  Please help, how do i resolve this issue.</p>
  
  <p>Below is the code-snippet which i am using for this:</p>
  
  <pre><code>    Calendar startCal = Calendar.getInstance();
      startCal.setTime(new Date(Long.MAX_VALUE));
      startCal.setTimeInMillis(minDate.getDateInMillis());
      Calendar endCal = Calendar.getInstance();
      endCal.setTime(new Date(Long.MAX_VALUE));
      endCal.setTimeInMillis(maxDate.getDateInMillis());
  
      // Add all weekend days within range to disabled days
      for (int i = 0; i &lt; 7; i++) {
          while (startCal.before(endCal) || startCal.equals(endCal) || (startCal.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY)) {
              if (startCal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY
                      || startCal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY
                      || startCal.get(Calendar.DAY_OF_WEEK) == Calendar.TUESDAY
                      || startCal.get(Calendar.DAY_OF_WEEK) == Calendar.WEDNESDAY
                      || startCal.get(Calendar.DAY_OF_WEEK) == Calendar.THURSDAY
                      || startCal.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY) {
                  int key = Utils.formatDisabledDayForKey(startCal.get(Calendar.YEAR),
                          startCal.get(Calendar.MONTH), startCal.get(Calendar.DAY_OF_MONTH));
                  disabledDays.put(key, new MonthAdapter.CalendarDay(startCal));
              }
              startCal.add(Calendar.DATE, 1);
          }
      }
      int daysInMonth = startCal.getActualMaximum(Calendar.DAY_OF_MONTH); // 31
  </code></pre>
  
  <p>And to poulet them inside some textview i am using this below code-snippet:</p>
  
  <pre><code>String date = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year;
      arr1 = new String[7];
  
      datepicker_dailog.setText(date);
  //  String input = datepicker_dailog.getText().toString();
  
      Log.e(TAG, "Date value1 is:--- " + date);
  
      GregorianCalendar cal=new GregorianCalendar();
      if (cal.isLeapYear(year)) {
          dayOfMonth++;
      }
  
      String ar[] = date.split("[-]");
      int day = Integer.parseInt(ar[0]);
      int month = Integer.parseInt(ar[1]);
      int year1 = Integer.parseInt(ar[2]);
  
      Log.e(TAG, "new value is  "+ day + "  " + month + "  "+ year1);
  
      for(int j = 0; j &lt; 7 ; j++) {
          date_exp(day, month, year1);
          date = day + "-"+month+"-"+year1;
          arr1[j] = date;
          Log.e(TAG, "loop is :---  "+ arr1[j]);
  
  
          Log.e(TAG, "value in loop is :---  "+ day + "  " + month + "  "+ year1);
          day++;
      }
  
      Log.e(TAG, "updated value is  "+ day + "  " + month + "  "+ year1);
  </code></pre>
  
  <p>I am refering this library to inplement calendar with date:</p>
  
  <p><a href="https://github.com/code-troopers/android-betterpickers" rel="nofollow noreferrer">https://github.com/code-troopers/android-betterpickers</a></p>
  
  <p>Here i am modifying and storing the date values in textviews, Please check once:</p>
  
  <pre><code>    @Override
      public void onDateSet(CalendarDatePickerDialogFragment dialog, int year, int monthOfYear, int dayOfMonth) {
      String date = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year;
      arr1 = new String[7];
  
      datepicker_dailog.setText(date);
  //  String input = datepicker_dailog.getText().toString();
  
      Log.e(TAG, "Date value1 is:--- " + date);
  
      GregorianCalendar cal=new GregorianCalendar();
      if (cal.isLeapYear(year)) {
          dayOfMonth++;
      }
  
      String ar[] = date.split("[-]");
      int day = Integer.parseInt(ar[0]);
      int month = Integer.parseInt(ar[1]);
      int year1 = Integer.parseInt(ar[2]);
  
      Log.e(TAG, "new value is  "+ day + "  " + month + "  "+ year1);
  
      for(int j = 0; j &lt; 7 ; j++) {
          date = day + "-"+month+"-"+year1;
          arr1[j] = date;
          Log.e(TAG, "loop is :---  "+ arr1[j]);
  
  
          Log.e(TAG, "value in loop is :---  "+ day + "  " + month + "  "+ year1);
          day++;
      }
  
      Log.e(TAG, "updated value is  "+ day + "  " + month + "  "+ year1);
  
  
      //------------------------------------------------------------------------------------------
  
      listView=(ListView)findViewById(R.id.addtime_container);
      dataModels= new ArrayList&lt;&gt;();
      try {
          for (int i = 0; i &lt; 7; i++) {
              dataModels.add(new Model_Addtime(arr1[i]));
  
              adapter = new Adapter_addtime(dataModels, getApplicationContext());
              listView.setAdapter(adapter);
              listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                  @Override
                  public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) {
                      Model_Addtime dataModel = dataModels.get(position);
  
                      Snackbar.make(view, dataModel.getDate_text() + "\n", Snackbar.LENGTH_LONG).setAction("No action", null).show();
                  }
              });
          }
      } catch (NumberFormatException num){
          num.printStackTrace(); num.getCause(); num.getMessage();
      }
  }
  </code></pre>