code: private BigDecimal getSunTrueLongitude(BigDecimal meanAnomaly) {
          BigDecimal sinMeanAnomaly = new BigDecimal(Math.sin(convertDegreesToRadians(meanAnomaly).doubleValue()));
          BigDecimal sinDoubleMeanAnomaly = new BigDecimal(Math.sin(multiplyBy(convertDegreesToRadians(meanAnomaly), BigDecimal.valueOf(2))
                  .doubleValue()));
  
          BigDecimal firstPart = meanAnomaly.add(multiplyBy(sinMeanAnomaly, new BigDecimal("1.916")));
          BigDecimal secondPart = multiplyBy(sinDoubleMeanAnomaly, new BigDecimal("0.020")).add(new BigDecimal("282.634"));
          BigDecimal trueLongitude = firstPart.add(secondPart);
  
          if (trueLongitude.doubleValue() > 360) {
              trueLongitude = trueLongitude.subtract(BigDecimal.valueOf(360));
          }
          return setScale(trueLongitude);
      }
docs: Computes the true longitude of the sun, L in the algorithm, at the given location, adjusted to fit in
  the range [0-360].
  
  @param meanAnomaly
  the suns mean anomaly.
  @return the suns true longitude, in <code>BigDecimal</code> form.