To get weekend list for a current year, write the following code:
private ArrayList weekendList = null;
public void findWeekendsList()
{
weekendList = new ArrayList();
Calendar calendar = null;
calendar = Calendar.getInstance();
// The while loop ensures that you are only checking dates in the current year
while(calendar.get(Calendar.YEAR) == Calendar.getInstance().get(Calendar.YEAR)){
// The switch checks the day of the week for Saturdays and Sundays
switch(calendar.get(Calendar.DAY_OF_WEEK)){
case Calendar.SATURDAY:
case Calendar.SUNDAY:
weekendList.add(calendar.getTime());
break;
}
// Increment the day of the year for the next iteration of the while loop
calendar.add(Calendar.DAY_OF_YEAR, 1);
}
}
If you want to check dates in the specified year, then set the date as bellow:
calendar.setTime(dateStr); // Where dateStr is the specified date after which you want to find weekends.
then use the same code as defined above.
You can also find the nearest weekend of current date by writing below code:
private Date getNearestWeekend()
{
try {
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date weekendDate = sdf.parse(sdf.format(c.getTime()));
return weekendDate;
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
Also from below code you can find nearest weekend of specified date:
Calendar cal = Calendar.getInstance();
cal.setTime(userCategoryLikes.getCreatedTime());// Here you will pass the date for which you want to get weekend.
cal.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date weekendDate = sdf.parse(sdf.format(cal.getTime()));
Hope this will help you :)
0 Comment(s)