// Determines the Contract Date of a Phase or a Task, based on the Standard
 // Duration in Days of the Standard Phase or the Standard Task
 private String calculateContractDate(
     String strStartDate, String strStdDuration, DateFormat DateFormatter) throws ParseException {
   String strContractDate = "";
   if (strStartDate != null
       && !strStartDate.equals("")
       && strStdDuration != null
       && !strStdDuration.equals("")) {
     strContractDate = strStartDate; // Contract Date equals to Starting
     // Date
     Integer StdDuration = Integer.parseInt(strStdDuration) - 1;
     int DaysLeft = StdDuration;
     while (DaysLeft > 0) {
       strContractDate = Utility.addDaysToDate(strContractDate, "1", DateFormatter); // Contract
       // Date equals
       // to Starting
       // Date
       // plus one day until the standard
       // duration in days is reached
       if (!Utility.isWeekendDay(strContractDate, DateFormatter))
         DaysLeft--; // If strContractDate is a weekend day, looks
       // for the next labor day
     }
   }
   return strContractDate;
 }
 // Determines the Starting Date of a Phase or a Task
 private String calculateStartDate(String strLastContractDate, DateFormat DateFormatter)
     throws ParseException {
   String strStartDate = "";
   if (strLastContractDate != null && !strLastContractDate.equals("")) {
     strStartDate = strLastContractDate; // Start Date equals to Last
     // Contract Date
     do {
       strStartDate = Utility.addDaysToDate(strStartDate, "1", DateFormatter); // Start Date equals
       // to Last Contract
       // Date plus one day
     } while (Utility.isWeekendDay(strStartDate, DateFormatter)); // If
     // strStartDate
     // is a
     // weekend
     // day,
     // looks
     // for
     // the
     // next
     // labor
     // day
   }
   return strStartDate;
 }