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

Popular Posts