code: private int majorSolarTerm(int days) {
          
          astro.setTime(daysToMillis(days));
  
          // Compute (floor(solarLongitude / (pi/6)) + 2) % 12
          int term = ((int) Math.floor(6 * astro.getSunLongitude() / Math.PI) + 2) % 12;
          if (term < 1) {
              term += 12;
          }
          return term;
      }
docs: Return the major solar term on or before a given date.  This
  will be an integer from 1..12, with 1 corresponding to 330 degrees,
  2 to 0 degrees, 3 to 30 degrees,..., and 12 to 300 degrees.
  @param days days after January 1, 1970 0:00 Asia/Shanghai