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;
    }
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 ; int yrStartLinearEstimate = ( int ) ( ( 354.36720 * year ) + 460322.05 + 0.5 ) ; ys = yrStartLinearEstimate + UMALQURA_YEAR_START_ESTIMATE_FIX [ year ] ; } return ys ; }
Return the day # on which the given year starts.  Days are counted
from the Hijri epoch, origin 0.