import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.text.SimpleDateFormat;
import java.text.ParseException;
public class TestMain {
public static List<List<String>> getDates(String startDate, String endDate) throws ParseException {
List<List <String>> result = new ArrayList<>();
// String pattern = "MM/dd/yyyy";
// Date date1=new SimpleDateFormat(pattern).parse(startDate);
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
// Calendar calendar = Calendar.getInstance();
// calendar.setTime(date1);
// System.out.println(calendar);
// System.out.println(calendar.setTime(date1.getDate()+1));
String pattern = "MM/dd/yyyy";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String[] token = startDate.split("/");
int startYear = Integer.parseInt(token[2]);
int startMonth = Integer.parseInt(token[0]) - 1;
int startDay = Integer.parseInt(token[1]);
token = endDate.split("/");
int endYear = Integer.parseInt(token[2]);
int endMonth = Integer.parseInt(token[0]) - 1;
int endDay = Integer.parseInt(token[1]);
String issuedDate = null;
String issuedWeek = null;
List<String> checkDate = new ArrayList<>();
List<String> checkWeek = new ArrayList<>();
Calendar startCal = new GregorianCalendar(startYear, startMonth, startDay);
Calendar endCal = new GregorianCalendar(endYear, endMonth, endDay);
do {
// get the day of the week for the current day
int day = startCal.get(Calendar.DAY_OF_WEEK);
// check if it is a Saturday or Sunday
if(day == Calendar.WEDNESDAY) {
issuedWeek = "Wed";
issuedDate = simpleDateFormat.format(startCal.getTime());
checkDate.add(issuedDate);
checkWeek.add(issuedWeek);
} else if (day == Calendar.FRIDAY) {
issuedWeek = "Fri";
issuedDate = simpleDateFormat.format(startCal.getTime());
checkDate.add(issuedDate);
checkWeek.add(issuedWeek);
} else if (day == Calendar.SATURDAY) {
issuedWeek = "Sat";
issuedDate = simpleDateFormat.format(startCal.getTime());
checkDate.add(issuedDate);
checkWeek.add(issuedWeek);
}
// advance to the next day
startCal.add(Calendar.DAY_OF_YEAR, 1);
} while (!endCal.equals(startCal));
result.add(checkDate);
result.add(checkWeek);
//System.out.println(checkDate);
return result;
}
public static void main(String[] args) throws ParseException {
String startDate = "04/03/2019";
String endDate = "06/10/2019";
List<List <String>> list = new ArrayList<>();
list = getDates(startDate, endDate);
//System.out.println(list[1]);
list.stream().forEach(System.out::println);
}
}