date-chinese
Advanced tools
Comparing version 1.0.4 to 1.0.5
@@ -12,8 +12,39 @@ 'use strict'; | ||
var _astronomia = require('astronomia'); | ||
// import {base, solstice, solar, moonphase, planetposition, julian, data} from 'astronomia' // TODO waiting for tree-shaking that works... | ||
var _base = require('astronomia/lib/base'); | ||
var _base2 = _interopRequireDefault(_base); | ||
var _solstice = require('astronomia/lib/solstice'); | ||
var _solstice2 = _interopRequireDefault(_solstice); | ||
var _solar = require('astronomia/lib/solar'); | ||
var _solar2 = _interopRequireDefault(_solar); | ||
var _moonphase = require('astronomia/lib/moonphase'); | ||
var _moonphase2 = _interopRequireDefault(_moonphase); | ||
var _planetposition = require('astronomia/lib/planetposition'); | ||
var _planetposition2 = _interopRequireDefault(_planetposition); | ||
var _julian = require('astronomia/lib/julian'); | ||
var _julian2 = _interopRequireDefault(_julian); | ||
var _vsop87Bearth = require('astronomia/data/vsop87Bearth'); | ||
var _vsop87Bearth2 = _interopRequireDefault(_vsop87Bearth); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
var earth = new _astronomia.planetposition.Planet(_astronomia.data.earth); | ||
var lunarOffset = _astronomia.moonphase.meanLunarMonth / 2; | ||
var earth = new _planetposition2.default.Planet(_vsop87Bearth2.default); | ||
var lunarOffset = _moonphase2.default.meanLunarMonth / 2; | ||
var p = 180 / Math.PI; | ||
@@ -23,6 +54,6 @@ | ||
var epochY = -2636; | ||
var epoch = new _astronomia.julian.CalendarGregorian(epochY, 2, 15).toJDE(); | ||
var epoch = new _julian2.default.CalendarGregorian(epochY, 2, 15).toJDE(); | ||
function toYear(jde) { | ||
return new _astronomia.julian.CalendarGregorian().fromJDE(jde).toYear(); | ||
return new _julian2.default.CalendarGregorian().fromJDE(jde).toYear(); | ||
} | ||
@@ -128,3 +159,3 @@ | ||
value: function fromGregorian(year, month, day) { | ||
var j = this.midnight(new _astronomia.julian.CalendarGregorian(year, month, day).toJDE()); | ||
var j = this.midnight(new _julian2.default.CalendarGregorian(year, month, day).toJDE()); | ||
if (month === 1 && day <= 20) year--; // chinese new year never starts before 20/01 | ||
@@ -145,3 +176,3 @@ this._from(j, year); | ||
value: function fromDate(date) { | ||
var j = this.midnight(new _astronomia.julian.CalendarGregorian().fromDate(date).toJDE()); | ||
var j = this.midnight(new _julian2.default.CalendarGregorian().fromDate(date).toJDE()); | ||
this._from(j, date.getFullYear()); | ||
@@ -162,3 +193,3 @@ return this; | ||
var j = this.midnight(jde); | ||
var gc = new _astronomia.julian.CalendarGregorian().fromJDE(j); | ||
var gc = new _julian2.default.CalendarGregorian().fromJDE(j); | ||
if (gc.month === 1 && gc.day < 20) gc.year--; // chinese new year never starts before 20/01 | ||
@@ -189,3 +220,3 @@ this._from(j, gc.year); | ||
var years = 1.5 + (ny - this._epoch) / _astronomia.base.BesselianYear; | ||
var years = 1.5 + (ny - this._epoch) / _base2.default.BesselianYear; | ||
this.cycle = 1 + Math.trunc((years - 1) / 60); | ||
@@ -195,3 +226,3 @@ this.year = 1 + Math.trunc((years - 1) % 60); | ||
this.month = this.inMajorSolarTerm(nm).term; | ||
var m = Math.round((nm - ny) / _astronomia.moonphase.meanLunarMonth); | ||
var m = Math.round((nm - ny) / _moonphase2.default.meanLunarMonth); | ||
if (m === 0) { | ||
@@ -227,3 +258,3 @@ this.month = 1; | ||
var jde = this.toJDE(gyear); | ||
var gc = new _astronomia.julian.CalendarGregorian().fromJDE(jde + 0.5); // add 0.5 as day get truncated | ||
var gc = new _julian2.default.CalendarGregorian().fromJDE(jde + 0.5); // add 0.5 as day get truncated | ||
return { | ||
@@ -247,3 +278,3 @@ year: gc.year, | ||
var jde = this.toJDE(gyear); | ||
return new _astronomia.julian.CalendarGregorian().fromJDE(toFixed(jde, 4)).toDate(); | ||
return new _julian2.default.CalendarGregorian().fromJDE(toFixed(jde, 4)).toDate(); | ||
} | ||
@@ -308,3 +339,3 @@ | ||
value: function midnight(jde) { | ||
var gcal = new _astronomia.julian.CalendarGregorian().fromJDE(jde); | ||
var gcal = new _julian2.default.CalendarGregorian().fromJDE(jde); | ||
var ts = 0.5 - this.timeshiftUTC(gcal); | ||
@@ -329,3 +360,3 @@ var mn = Math.trunc(gcal.toJD() - ts) + ts; | ||
value: function inMajorSolarTerm(jde) { | ||
var lon = this._cache.lon[jde] || _astronomia.solar.apparentVSOP87(earth, jde).lon; | ||
var lon = this._cache.lon[jde] || _solar2.default.apparentVSOP87(earth, jde).lon; | ||
this._cache.lon[jde] = lon; | ||
@@ -365,6 +396,6 @@ var lonDeg = lon * p - 1e-13; | ||
value: function nextNewMoon(jde) { | ||
var nm = this.midnight(_astronomia.moonphase.newMoon(toYear(jde))); | ||
var nm = this.midnight(_moonphase2.default.newMoon(toYear(jde))); | ||
var cnt = 0; | ||
while (nm < jde && cnt++ < 4) { | ||
nm = this.midnight(_astronomia.moonphase.newMoon(toYear(jde + cnt * lunarOffset))); | ||
nm = this.midnight(_moonphase2.default.newMoon(toYear(jde + cnt * lunarOffset))); | ||
} | ||
@@ -384,6 +415,6 @@ return nm; | ||
value: function previousNewMoon(jde) { | ||
var nm = this.midnight(_astronomia.moonphase.newMoon(toYear(jde))); | ||
var nm = this.midnight(_moonphase2.default.newMoon(toYear(jde))); | ||
var cnt = 0; | ||
while (nm > jde && cnt++ < 4) { | ||
nm = this.midnight(_astronomia.moonphase.newMoon(toYear(jde - cnt * lunarOffset))); | ||
nm = this.midnight(_moonphase2.default.newMoon(toYear(jde - cnt * lunarOffset))); | ||
} | ||
@@ -406,4 +437,4 @@ return nm; | ||
var sue1 = this._cache.sue[gyear - 1] || _astronomia.solstice.december2(gyear - 1, earth); | ||
var sue2 = this._cache.sue[gyear] || _astronomia.solstice.december2(gyear, earth); | ||
var sue1 = this._cache.sue[gyear - 1] || _solstice2.default.december2(gyear - 1, earth); | ||
var sue2 = this._cache.sue[gyear] || _solstice2.default.december2(gyear, earth); | ||
this._cache.sue[gyear - 1] = sue1; | ||
@@ -415,7 +446,7 @@ this._cache.sue[gyear] = sue2; | ||
var m13 = this.nextNewMoon(this.midnight(m12 + lunarOffset)); | ||
this.leapSui = Math.round((m11n - m12) / _astronomia.moonphase.meanLunarMonth) === 12; | ||
this.leapSui = Math.round((m11n - m12) / _moonphase2.default.meanLunarMonth) === 12; | ||
var ny = m13; | ||
if (this.leapSui && (this.isLeapMonth(m12) || this.isLeapMonth(m13))) { | ||
ny = this.nextNewMoon(this.midnight(m13 + _astronomia.moonphase.meanLunarMonth / 2)); | ||
ny = this.nextNewMoon(this.midnight(m13 + _moonphase2.default.meanLunarMonth / 2)); | ||
} | ||
@@ -468,3 +499,3 @@ this._cache.ny[gyear] = ny; | ||
var lon = (term + 20) % 24 * 15 % 360; | ||
var st = _astronomia.solstice.longitude(years, earth, lon / p); | ||
var st = _solstice2.default.longitude(years, earth, lon / p); | ||
st = this.midnight(st); | ||
@@ -471,0 +502,0 @@ return st; |
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | ||
var _astronomia = require('astronomia'); | ||
var _julian = require('astronomia/lib/julian'); | ||
var _julian2 = _interopRequireDefault(_julian); | ||
var _Chinese = require('./Chinese'); | ||
@@ -22,5 +28,8 @@ | ||
// import {julian} from 'astronomia' // TODO waiting for tree-shaking that works... | ||
// Start of Korean Calendar in 2333 BCE (단군기원 http://ko.wikipedia.org/wiki/단기) | ||
var epochY = -2333; | ||
var epoch = new _astronomia.julian.CalendarGregorian(epochY, 1, 27).toJDE(); | ||
var epoch = new _julian2.default.CalendarGregorian(epochY, 1, 27).toJDE(); | ||
@@ -75,2 +84,2 @@ /** | ||
module.exports = CalendarKorean; | ||
exports.default = CalendarKorean; |
{ | ||
"name": "date-chinese", | ||
"version": "1.0.4", | ||
"version": "1.0.5", | ||
"description": "Chinese Calendar", | ||
@@ -26,4 +26,2 @@ "keywords": [ | ||
"main": "lib", | ||
"module": "es", | ||
"jsnext:main": "es", | ||
"directories": { | ||
@@ -38,4 +36,3 @@ "test": "test" | ||
"all": "npm run clean && npm run lint && npm run build && npm test", | ||
"build": "npm run build:cjs && npm run build:es5", | ||
"build:cjs": "babel -d lib src", | ||
"build": "babel -d lib src", | ||
"build:es5": "BABEL_ENV=es5 babel -d es src", | ||
@@ -42,0 +39,0 @@ "clean": "rimraf lib es coverage .nyc_output", |
@@ -6,5 +6,12 @@ /** | ||
import {base, solstice, solar, moonphase, planetposition, julian, data} from 'astronomia' | ||
// import {base, solstice, solar, moonphase, planetposition, julian, data} from 'astronomia' // TODO waiting for tree-shaking that works... | ||
import base from 'astronomia/lib/base' | ||
import solstice from 'astronomia/lib/solstice' | ||
import solar from 'astronomia/lib/solar' | ||
import moonphase from 'astronomia/lib/moonphase' | ||
import planetposition from 'astronomia/lib/planetposition' | ||
import julian from 'astronomia/lib/julian' | ||
import dataEarth from 'astronomia/data/vsop87Bearth' | ||
const earth = new planetposition.Planet(data.earth) | ||
const earth = new planetposition.Planet(dataEarth) | ||
const lunarOffset = moonphase.meanLunarMonth / 2 | ||
@@ -11,0 +18,0 @@ const p = 180 / Math.PI |
@@ -6,3 +6,4 @@ /** | ||
import {julian} from 'astronomia' | ||
// import {julian} from 'astronomia' // TODO waiting for tree-shaking that works... | ||
import julian from 'astronomia/lib/julian' | ||
import CalendarChinese from './Chinese' | ||
@@ -29,3 +30,3 @@ | ||
class CalendarKorean extends CalendarChinese { | ||
export default class CalendarKorean extends CalendarChinese { | ||
constructor (cycle, year, month, leap, day) { | ||
@@ -54,2 +55,1 @@ super(cycle, year, month, leap, day) | ||
} | ||
module.exports = CalendarKorean |
56816
13
1125