code: private long yearStart(int year) {
          long ys = 0;
          if (cType == CalculationType.ISLAMIC_CIVIL
                  || cType == CalculationType.ISLAMIC_TBLA
                  || (cType == CalculationType.ISLAMIC_UMALQURA && (year < UMALQURA_YEAR_START || year > UMALQURA_YEAR_END))) {
              ys = (year-1)*354 + (long)Math.floor((3+11*year)/30.0);
          } else if(cType == CalculationType.ISLAMIC) {
              ys = trueMonthStart(12*(year-1));
          } else if(cType == CalculationType.ISLAMIC_UMALQURA){
              year -= UMALQURA_YEAR_START;
              // rounded least-squares fit of the dates previously calculated from UMALQURA_MONTHLENGTH iteration
              int yrStartLinearEstimate = (int)((354.36720 * year) + 460322.05 + 0.5);
              // need a slight correction to some
              ys = yrStartLinearEstimate + UMALQURA_YEAR_START_ESTIMATE_FIX[year];
          }
          return ys;
      }
docs: Return the day # on which the given year starts.  Days are counted
  from the Hijri epoch, origin 0.