code: @Override
      protected int handleGetMonthLength(int extendedYear, int month) {
  
          int length;
  
          if (cType == CalculationType.ISLAMIC_CIVIL
                  || cType == CalculationType.ISLAMIC_TBLA
                  || (cType == CalculationType.ISLAMIC_UMALQURA && (extendedYear < UMALQURA_YEAR_START  || extendedYear > UMALQURA_YEAR_END) )) {
              length = 29 + (month+1) % 2;
              if (month == DHU_AL_HIJJAH && civilLeapYear(extendedYear)) {
                  length++;
              }
          }
          else if (cType == CalculationType.ISLAMIC) {
              month = 12*(extendedYear-1) + month;
              length = (int)( trueMonthStart(month+1) - trueMonthStart(month) );
          }
          else { // cType == CalculationType.ISLAMIC_UMALQURA should be true at this point and not null.
              int idx = (extendedYear - UMALQURA_YEAR_START);     // calculate year offset into bit map array
              int mask = (0x01 << (11 - month));                  // set mask for bit corresponding to month
              if((UMALQURA_MONTHLENGTH[idx] & mask) == 0 ) {
                  length = 29;
              }
              else {
                  length = 30;
              }
          }
          return length;
      }
docs: Return the length (in days) of the given month.
  
  @param extendedYear  The hijri year
  @param month The hijri month, 0-based