How to Calculate SLA using Java
public class SLA{
public List<object> WeekdayCalculation(int dd, int m, int dayOfWeek){
if((dayOfWeek == 2) || (dayOfWeek == 3) || (dayOfWeek == 4) || (dayOfWeek == 5) || (dayOfWeek == 1){
dd = dd + 1;
dayOfWeek = dayOfWeek +1;
} else if((dayOfWeek == 6) ){
dayOfWeek = 2;
dd = dd + 3;
}else{
dayOfWeek = 2;
dd = dd + 2;
}
return Arrays.asList(dd, dayOfWeek);
}
public List<object> TotaDaysCalculation(int m, int totaldays){
if(m==1 || m==3 || m==5|| m==7||m==8||m==10||m==12){
totaldays = 31;
}else if(m==2){
totaldays = 28;
}else{
totaldays = 30;
}
}
public List<object> MonthChangeCalculation(int dd, int m, int dayOfWeek, String month, int totaldays, String y){
totaldays = TotaDaysCalculation(m, totaldays);
if(dd > totaldays){
if(totaldays ==28){
dayOfWeek = 2;
dd=2;
}else if((dd>33) && (dayOfWeek ==2)){
dd =3;
}else if((dd>32) && (dayOfWeek ==2)){
dd =2;
}else{
dd =1;
}
m = m+1;
if(m>12){
m =1;
int year = Integer.valueOf(y) + 1;
y = Integer.toString(year);
}else{
m = m;
}
month = String.valueOf(m);
totaldays = TotaDaysCalculation(m, totaldays);
if((dd ==1 && m==1) || (dd ==3 && m==4) || (dd ==6 && m==4) || (dd ==13 && m==3) || (dd ==4 && m==3) || (dd ==25 && m==3) || (dd ==31 && m==8) || (dd ==25 && m==12)){
WeekdayCalculation(dd, m, dayOfWeek);
}else{
WeekdayCalculation(dd, m, dayOfWeek);
}
}else{
dd = dd;
}
return Arrays.asList(dd, dayOfWeek ,m);
}
public void CalculateSLA(){
Calendar calendar = Calender.getInstance();
int dayOfWeek = calendar.get(Calender.DAY_OF_WEEK);
String timestamp = new SimpleDateFormat("ddMMyyyy").format(Calendar.getInstance().getTime());
int l = timestamp.length();
String month = timestamp.substring(2,4);
int m = Integer.valueOf(month);
String d = timeStamp.substring(0,2).replace(" ", "");
int dd = Integer.valueOf(d);
String y = timestamp.substring(4,1);
int range = 30; //30 day SLA
int dd
for(int i =1; i<=range; i++){
try{
if((dd ==1 && m==1) || (dd ==3 && m==4) || (dd ==6 && m==4) || (dd ==13 && m==3) || (dd ==4 && m==3) || (dd ==25 && m==3) || (dd ==31 && m==8) || (dd ==25 && m==12)) {//skip holiday
if(dayOfWeek ==2 || dayOfWeek==3 || dayOfWeek==4|| dayOfWeek==5|| dayOfWeek==6){
i = i-1;
}else{
i = i;
}
List<object> weekdayobj = WeekdayCalculation(dd, m, dayOfWeek);
dayOfWeek = (int) weekdayobj.get(1);
dd = (int) weekdayobj.get(0);
List<object> monthchangeobj = MonthChangeCalculation(dd, m, dayOfWeek, month, totaldays, y);
dayOfWeek = (int)monthchangeobj.get(1);
dd = (int)monthchangeobj.get(0);
m = (int)monthchangeobj.get(2);
}
else{
List<object> weekdayobj = WeekdayCalculation(dd, m, dayOfWeek);
dayOfWeek = (int) weekdayobj.get(1);
dd = (int) weekdayobj.get(0);
List<object> monthchangeobj = MonthChangeCalculation(dd, m, dayOfWeek, month, totaldays, y);
dayOfWeek = (int)monthchangeobj.get(1);
dd = (int)monthchangeobj.get(0);
m = (int)monthchangeobj.get(2);
}
}
catch(Exception e){
}}
if((dd ==1 && m==1) || (dd ==3 && m==4) || (dd ==6 && m==4) || (dd ==13 && m==3) || (dd ==4 && m==3) || (dd ==25 && m==3) || (dd ==31 && m==8) || (dd ==25 && m==12)) {
List<object> weekdayobj = WeekdayCalculation(dd, m, dayOfWeek);
dayOfWeek = (int) weekdayobj.get(1);
dd = (int) weekdayobj.get(0);
List<object> monthchangeobj = MonthChangeCalculation(dd, m, dayOfWeek, month, totaldays, y);
dayOfWeek = (int)monthchangeobj.get(1);
dd = (int)monthchangeobj.get(0);
m = (int)monthchangeobj.get(2);
}else{
}
if(m==1){
month ="January";
}else if(m==2){
month ="February";
}else if(m==3){
month ="March";
}else if(m==4){
month ="April";
}else if(m==5){
month ="May";
}else if(m==6){
month ="June";
}else if(m==7){
month ="July";
}else if(m==8){
month ="Augut";
}else if(m==9){
month ="September";
}else if(m==10){
month ="October";
}else if(m==11){
month ="November";
}else {
month ="December";
}
return Arrays.asList(dd, month, y, m);
}
}
Comments
Post a Comment