<p>
<pre class=\\\"answer-content\\\">import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
public class DateCheck {
static SimpleDateFormat sdf = new SimpleDateFormat(\\\"yyyy-MM-dd\\\");
public static void main(String[] ags) {
ArrayListCalendar start = new ArrayListCalendar();
ArrayListCalendar end = new ArrayListCalendar();
Calendar dateToCheck;
start.add(getStartDate());
end.add(getEndDate());
dateToCheck = getDateToCheck();
groupingDates(start, end);
int check = checkDateInGroups(dateToCheck, start, end);
if (check == -1) {
System.out.println(\\\"\\\\nGiven date is not found in all periods.\\\");
}
else {
System.out.println(\\\"\\\\nGiven date is in period \\\" check);
}
}
private static Calendar getStartDate() {
Calendar result = Calendar.getInstance();
result.set(2010, Calendar.JUNE, 28);
System.out.print(\\\"From \\\" sdf.format(result.getTime()));
return result;
}
private static Calendar getEndDate() {
Calendar result = Calendar.getInstance();
result.set(2013, Calendar.SEPTEMBER, 3);
System.out.println(\\\" to \\\" sdf.format(result.getTime()));
return result;
}
private static Calendar getDateToCheck() {
Calendar result = Calendar.getInstance();
System.out.println(\\\"Date to check is: \\\"
sdf.format(result.getTime()) \\\"\\\\n\\\");
return result;
}
private static void groupingDates(
ArrayListCalendar start, ArrayListCalendar end) {
boolean finished = false;
int position = 0;
while (!finished) {
Calendar startDate = start.get(start.size() - 1);
Calendar endDate = end.get(start.size() - 1);
int year = startDate.get(Calendar.YEAR) 1;
int month = startDate.get(Calendar.MONTH);
int date = startDate.get(Calendar.DATE) - 1;
Calendar nextEndDate = Calendar.getInstance();
nextEndDate.set(year, month, date);
if (nextEndDate.compareTo(endDate)0) {
Calendar nextStartDate = Calendar.getInstance();
nextStartDate.set(year, month, date 1);
start.add(nextStartDate);
end.add(position, nextEndDate);
}
else {
finished = true;
}
}
for (int i = 0; istart.size(); i) {
System.out.println(\\\"Period \\\" i \\\" : From \\\"
sdf.format(start.get(i).getTime()) \\\" to \\\"
sdf.format(end.get(i).getTime()));
}
}
private static int checkDateInGroups(Calendar date,
ArrayListCalendar start, ArrayListCalendar end) {
for (int i = 0; istart.size(); i) {
if (date.compareTo(start.get(i)) = 0
= 0) {
return i;
}
}
return -1;
}
}
</p> |