Skip to content

Commit

Permalink
chinese: Use method isIntercalaryMonth
Browse files Browse the repository at this point in the history
* This commit "fixes" a bug in `ChineseCalendar.prototype.add` that
  caused first lunar months to be considered as intercalary. Since this
  is only an issue when adding years, this bug cannot be triggered in
  the range of years currently covered (1888 - 2111).
  • Loading branch information
n-riesco committed Dec 14, 2016
1 parent 31fb405 commit 7eb73fd
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions jquery-src/jquery.calendars.chinese.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,7 @@
month = "0" + month;
}

var intercalaryMonth = this.intercalaryMonth(year);
if (intercalaryMonth && monthIndex === intercalaryMonth) {
if (this.isIntercalaryMonth(year, monthIndex)) {
month += 'i';
}

Expand All @@ -95,8 +94,7 @@
var monthName = ['一月','二月','三月','四月','五月','六月',
'七月','八月','九月','十月','十一月','十二月'][month - 1];

var intercalaryMonth = this.intercalaryMonth(year);
if (intercalaryMonth && monthIndex === intercalaryMonth) {
if (this.isIntercalaryMonth(year, monthIndex)) {
monthName = '闰' + monthName;
}

Expand All @@ -116,8 +114,7 @@
var monthName = ['一','二','三','四','五','六',
'七','八','九','十','十一','十二'][month - 1];

var intercalaryMonth = this.intercalaryMonth(year);
if (intercalaryMonth && monthIndex === intercalaryMonth) {
if (this.isIntercalaryMonth(year, monthIndex)) {
monthName = '闰' + monthName;
}

Expand Down Expand Up @@ -372,7 +369,7 @@
monthIndex = date.month();
day = date.day();

var isIntercalary = (monthIndex === this.intercalaryMonth(year));
var isIntercalary = this.isIntercalaryMonth(year, monthIndex);
var month = this.toChineseMonth(year, monthIndex);

var solar = toSolar(year, month, day, isIntercalary);
Expand Down Expand Up @@ -422,7 +419,7 @@
add: function(date, offset, period) {
var year = date.year();
var monthIndex = date.month();
var isIntercalary = (monthIndex === this.intercalaryMonth(year));
var isIntercalary = this.isIntercalaryMonth(year, monthIndex);
var month = this.toChineseMonth(year, monthIndex);

var cdate = Object.getPrototypeOf(ChineseCalendar.prototype)
Expand All @@ -436,7 +433,7 @@
// Using the fact the month index of an intercalary month
// equals its month number:
var resultCanBeIntercalaryMonth =
(month === this.intercalaryMonth(resultYear));
this.isIntercalaryMonth(resultYear, month);

var correctedMonthIndex =
(isIntercalary && resultCanBeIntercalaryMonth) ?
Expand Down

0 comments on commit 7eb73fd

Please sign in to comment.