@@ -97,7 +97,8 @@ public static final int[] lunarToSolar(int year, int month, int monthDay,
9797 int leapMonth ;
9898 int i ;
9999
100- if (year < MIN_YEAR || year > MAX_YEAR || month < 1 || month > 12
100+ int maxMonth = 12 ;
101+ if (year < MIN_YEAR || year > MAX_YEAR || month < 1 || month > maxMonth
101102 || monthDay < 1 || monthDay > 30 ) {
102103 throw new IllegalArgumentException (
103104 "Illegal lunar date, must be like that:\n \t " +
@@ -108,7 +109,9 @@ public static final int[] lunarToSolar(int year, int month, int monthDay,
108109
109110 dayOffset = (LUNAR_INFO [year - MIN_YEAR ] & 0x001F ) - 1 ;
110111
111- if (((LUNAR_INFO [year - MIN_YEAR ] & 0x0060 ) >> 5 ) == 2 ) {
112+ int five = 5 ;
113+ int two = 2 ;
114+ if (((LUNAR_INFO [year - MIN_YEAR ] & 0x0060 ) >> five ) == two ) {
112115 dayOffset += 31 ;
113116 }
114117
@@ -135,46 +138,48 @@ public static final int[] lunarToSolar(int year, int month, int monthDay,
135138 }
136139 }
137140
138- boolean res = dayOffset > 366 || (year % 4 != 0 && dayOffset > 365 );
141+ int four = 4 ;
142+ boolean res = dayOffset > 366 || (year % four != 0 && dayOffset > 365 );
139143 if (res ) {
140144 year += 1 ;
141- if (year % 4 == 1 ) {
145+ if (year % four == 1 ) {
142146 dayOffset -= 366 ;
143147 } else {
144148 dayOffset -= 365 ;
145149 }
146150 }
147151
148152 int [] solarInfo = new int [3 ];
149- for (i = 1 ; i < 13 ; i ++) {
153+ int oneThree = 13 ;
154+ for (i = 1 ; i < oneThree ; i ++) {
150155 int iPos = DAYS_BEFORE_MONTH [i ];
151- if (year % 4 == 0 && i > 2 ) {
156+ if (year % four == 0 && i > two ) {
152157 iPos += 1 ;
153158 }
154159
155- if (year % 4 == 0 && i == 2 && iPos + 1 == dayOffset ) {
160+ if (year % four == 0 && i == two && iPos + 1 == dayOffset ) {
156161 solarInfo [1 ] = i ;
157- solarInfo [2 ] = dayOffset - 31 ;
162+ solarInfo [two ] = dayOffset - 31 ;
158163 break ;
159164 }
160165
161166 if (iPos >= dayOffset ) {
162167 solarInfo [1 ] = i ;
163168 iPos = DAYS_BEFORE_MONTH [i - 1 ];
164- if (year % 4 == 0 && i > 2 ) {
169+ if (year % four == 0 && i > two ) {
165170 iPos += 1 ;
166171 }
167172 if (dayOffset > iPos ) {
168- solarInfo [2 ] = dayOffset - iPos ;
173+ solarInfo [two ] = dayOffset - iPos ;
169174 } else if (dayOffset == iPos ) {
170- if (year % 4 == 0 && i == 2 ) {
171- solarInfo [2 ] = DAYS_BEFORE_MONTH [i ] - DAYS_BEFORE_MONTH [i - 1 ] + 1 ;
175+ if (year % four == 0 && i == two ) {
176+ solarInfo [two ] = DAYS_BEFORE_MONTH [i ] - DAYS_BEFORE_MONTH [i - 1 ] + 1 ;
172177 } else {
173- solarInfo [2 ] = DAYS_BEFORE_MONTH [i ] - DAYS_BEFORE_MONTH [i - 1 ];
178+ solarInfo [two ] = DAYS_BEFORE_MONTH [i ] - DAYS_BEFORE_MONTH [i - 1 ];
174179 }
175180
176181 } else {
177- solarInfo [2 ] = dayOffset ;
182+ solarInfo [two ] = dayOffset ;
178183 }
179184 break ;
180185 }
@@ -226,12 +231,13 @@ public static final int[] solarToLunar(int year, int month, int monthDay) {
226231
227232 // 农历年份
228233 lunarDate [0 ] = iYear ;
229- // 闰哪个月,1-12
234+ // 闰哪个月,1-12
230235 int leapMonth = leapMonth (iYear );
231236 boolean isLeap = false ;
232237 // 用当年的天数offset,逐个减去每月(农历)的天数,求出当天是本月的第几天
233238 int iMonth , daysOfMonth = 0 ;
234- for (iMonth = 1 ; iMonth <= 13 && offset > 0 ; iMonth ++) {
239+ int i = 13 ;
240+ for (iMonth = 1 ; iMonth <= i && offset > 0 ; iMonth ++) {
235241 daysOfMonth = daysInLunarMonth (iYear , iMonth );
236242 offset -= daysOfMonth ;
237243 }
0 commit comments