// <Pre Current Week Next>
// Week : MONDAY to SUNDAY
// Week : SUNDAY to SATURDAY
public class TimeSheetCalender {
public static String DATE_FORMAT_PATTERN = "yyyy-MM-dd";
public static String DATE_PATTERN = "yyyy-MM-dd";
public static String DATE_FULL_PATTERN = "MM dd, YYYY";
public static ArrayList<Date> getLastWeek(Calendar mCalendar) {
// Monday
mCalendar.add(Calendar.DAY_OF_YEAR, -13);
Date mDateMonday = mCalendar.getTime();
// Sunday
mCalendar.add(Calendar.DAY_OF_YEAR, 6);
Date mDateSunday = mCalendar.getTime();
// Date format
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_PATTERN, Locale.US);
String MONDAY = sdf.format(mDateMonday);
String SUNDAY = sdf.format(mDateSunday);
ArrayList<Date> dateList = getDates(MONDAY, SUNDAY);
//return MONDAY + " - " + SUNDAY;
return dateList;
}
//MONDAY - SUNDAY
public static ArrayList<Date> getCurrentWeek(Calendar mCalendar) {
Date date = new Date();
mCalendar.setTime(date);
// 1 = Sunday, 2 = Monday, etc.
int day_of_week = mCalendar.get(Calendar.DAY_OF_WEEK);
int monday_offset;
if (day_of_week == 1) {
monday_offset = -6;
} else
monday_offset = (2 - day_of_week); // need to minus back
mCalendar.add(Calendar.DAY_OF_YEAR, monday_offset);
Date mDateMonday = mCalendar.getTime();
// return 6 the next days of current day (object cal save current day)
mCalendar.add(Calendar.DAY_OF_YEAR, 6);
Date mDateSunday = mCalendar.getTime();
//Get format date
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_PATTERN, Locale.US);
String MONDAY = sdf.format(mDateMonday);
String SUNDAY = sdf.format(mDateSunday);
Common.logData("TimeSheetCalender", "Date: " + MONDAY);
ArrayList<Date> dateList = getDates(MONDAY, SUNDAY);
//return MONDAY + " - " + SUNDAY;
return dateList;
}
//SUNDAY - SATURDAY
public static ArrayList<Date> getCurrentWeek_(Calendar mCalendar) {
// Set the calendar to sunday of the current week
mCalendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_PATTERN, Locale.US);
String startDate = "", endDate = "";
startDate = sdf.format(mCalendar.getTime());
mCalendar.add(Calendar.DATE, 6);
endDate = sdf.format(mCalendar.getTime());
System.out.println("Start Date = " + startDate);
System.out.println("End Date = " + endDate);
ArrayList<Date> dateList = getDates(startDate, endDate);
return dateList;
}
public static ArrayList<Date> getNextWeek(Calendar mCalendar) {
// Monday
mCalendar.add(Calendar.DAY_OF_YEAR, 1);
Date mDateMonday = mCalendar.getTime();
// Sunday
mCalendar.add(Calendar.DAY_OF_YEAR, 6);
Date Week_Sunday_Date = mCalendar.getTime();
// Date format
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_PATTERN, Locale.US);
String MONDAY = sdf.format(mDateMonday);
String SUNDAY = sdf.format(Week_Sunday_Date);
ArrayList<Date> dateList = getDates(MONDAY, SUNDAY);
//return MONDAY + " - " + SUNDAY;
return dateList;
}
private static ArrayList<Date> getDates(String dateString1, String dateString2) {
ArrayList<Date> dates = new ArrayList<Date>();
DateFormat df1 = new SimpleDateFormat(DATE_FORMAT_PATTERN, Locale.US);
Date date1 = null;
Date date2 = null;
try {
date1 = df1.parse(dateString1);
date2 = df1.parse(dateString2);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar cal1 = Calendar.getInstance(Locale.US);
cal1.setTime(date1);
Calendar cal2 = Calendar.getInstance(Locale.US);
cal2.setTime(date2);
while (!cal1.after(cal2)) {
dates.add(cal1.getTime());
cal1.add(Calendar.DATE, 1);
Common.logData("TimeSheetCalender", "Date: " + cal1.getTime());
}
return dates;
}
}