You need to sign in to do that
Don't have an account?
Gnana Jegan S
How to calculate Weekends and Different month total value?
I have a scenario to caluculate total leave month wise while employee apply leave.
Following scenario need to be cover:
Following scenario need to be cover:
- If you have taken leave on Friday and apply leave for the next five week days, the weekends will not be considered as leave and a total of 6 days leave w i l l be deducted. (considering saturday and sunday as weekoffs).
- If you have taken leave on Friday and apply leave for the next six week days ,then the weekends will also be considered as leave and a total of 11 days leave will be deducted. (2 saturdays and 2 sundays are considered as leave days ).
Integer currentMonthCount = 0; Integer prevLeave = 0; Integer currentMonth = LeaveObj.From__c.month(); for(Integer i=0; i <= LeaveObj.From__c.daysBetween(LeaveObj.To__c); i++) { Date dt = LeaveObj.From__c + i; DateTime currDate = DateTime.newInstance(dt.year(), dt.month(), dt.day()); String todayDay = currDate.format('EEEE'); if(todayDay != 'Saturday' && todayDay !='Sunday' && (!holidaysSet.contains(dt))) { if(currentMonth == dt.month()){ currentMonthCount++; }else{ prevLeave = monthlyLeaveCount[dt.month()]; monthlyLeaveCount[dt.month() - 2] = +prevLeave + +currentMonthCount; currentMonth = dt.month(); currentMonthCount = 1; } workingDays = workingDays + 1; } else if(todayDay == 'Saturday' || todayDay =='Sunday'){ weekEnds = weekEnds + 1; } } prevLeave = monthlyLeaveCount[LeaveObj.To__c.month()]; monthlyLeaveCount[LeaveObj.To__c.month() - 1] = +prevLeave + +currentMonthCount; } if(workingDays == 0){ return LeaveObj; } if(workingDays > 6){ if(weekEnds > 2){ workingDays = workingDays + weekEnds; } }