I want to know the number of Sundays in the current month. For example, March 2019 has 5 Sundays, so I want to reach this number. I have tried this code that I found in many places here but doesn't give the result.
Calendar cal = Calendar.getInstance();
int mes_cal = cal.get(Calendar.MONTH);
int ano_cal = cal.get(Calendar.YEAR);
int daysInMonth = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
int count = 0;
for (int day = 1; day <= daysInMonth; day++) {
cal.set(ano_cal, mes_cal, 1);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == Calendar.SUNDAY) {
count++;
System.out.println(count);
}
}
SOLUTION (from @primo suggested link with only one correction)
Calendar cal = Calendar.getInstance();
mes_cal = cal.get(Calendar.MONTH);
ano_cal = cal.get(Calendar.YEAR);
public int countDayOccurence(int year, int month,int dayToFindCount) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, month, 1);
int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
int count = 0;
for (int day = 1; day <= daysInMonth; day++) {
calendar.set(year, month, day);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == dayToFindCount) {
count++;
}
}
return count;
}
And then call the method
int countSunday = countDayOccurence(ano_cal,mes_cal,Calendar.SUNDAY);