dayDifference method

int dayDifference(
  1. int y,
  2. int m,
  3. int d
)

Implementation

int dayDifference(int y, int m, int d) {
  List<int> monL = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  int ifG = ifGregorian(y, m, d, 1);
  if (1 == ifG) {
    if ((y % 100 != 0 && y % 4 == 0) || (y % 400 == 0)) {
      monL[2] += 1;
    } else if (y % 4 == 0) {
      monL[2] += 1;
    }
  }
  //else cont.

  int v = 0;
  for (int i = 0; i <= (m - 1); i++) {
    v += monL[i];
  }
  v += d;

  // 換曆年 天數修正
  if (y == 1582) {
    if (ifG == 1) {
      v -= 10;
    }
    if (ifG == -1) {
      v = 0;
    } // 1582/10/5 ~ 10/14 日期無效
  }

  return v;
}