daysSinceSolstice static method

int daysSinceSolstice(
  1. int dayOfYear,
  2. int year,
  3. double latitude
)

Implementation

static int daysSinceSolstice(int dayOfYear, int year, double latitude) {
  int daysSinceSolistice;
  final northernOffset = 10;
  final isLeapYear = CalendarUtil.isLeapYear(year);
  final southernOffset = isLeapYear ? 173 : 172;
  final daysInYear = isLeapYear ? 366 : 365;

  if (latitude >= 0) {
    daysSinceSolistice = dayOfYear + northernOffset;
    if (daysSinceSolistice >= daysInYear) {
      daysSinceSolistice = daysSinceSolistice - daysInYear;
    }
  } else {
    daysSinceSolistice = dayOfYear - southernOffset;
    if (daysSinceSolistice < 0) {
      daysSinceSolistice = daysSinceSolistice + daysInYear;
    }
  }
  return daysSinceSolistice;
}