private long firstDayOfMonth(
        int cycle,
        int yearOfCycle,
        EastAsianMonth month
    ) {
        long newYear = this.newYear(cycle, yearOfCycle);
        long approxStartOfMonth = this.newMoonOnOrAfter(newYear + (month.getNumber() - 1) * 29);

        if (month.equals(this.transform(approxStartOfMonth).getMonth())) {
            return approxStartOfMonth;
        } else {
            return this.newMoonOnOrAfter(approxStartOfMonth + 1);
        }
    }
private long firstDayOfMonth ( int cycle , int yearOfCycle , EastAsianMonth month ) { long newYear = this . newYear ( cycle , yearOfCycle ) ; long approxStartOfMonth = this . newMoonOnOrAfter ( newYear + ( month . getNumber ( ) - 1 ) * 29 ) ; if ( month . equals ( this . transform ( approxStartOfMonth ) . getMonth ( ) ) ) { return approxStartOfMonth ; } else { return this . newMoonOnOrAfter ( approxStartOfMonth + 1 ) ; } }
result in utc-days