Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"name": "solar-calc",
"version": "1.0.3",
"version": "1.0.4",
"description": "A sunrise/sunset/moonrise/moonset calculator",
"main": "index.js",
"types": "index.d.ts",
"scripts": {
"compile": "npm run clean && ./node_modules/.bin/babel src --out-dir lib",
"prepublish": "npm run compile",
"test": "npm run compile && ./node_modules/.bin/mocha",
"lint": "./node_modules/.bin/eslint src",
"build": "babel src --out-dir lib",
"prepublish": "npm run build",
"test": "npm run build && mocha",
"lint": "eslint src",
"clean": "rm -rf lib"
},
"repository": {
Expand All @@ -30,10 +30,12 @@
},
"homepage": "https://github.com/jonhester/solar-calc",
"devDependencies": {
"babel": "^4.7.8",
"babel-eslint": "^2.0.0",
"eslint": "^0.16.0",
"mocha": "^2.2.0"
"@babel/cli": "^7.13.0",
"@babel/core": "^7.13.8",
"@babel/preset-env": "^7.13.9",
"babel-eslint": "^10.1.0",
"eslint": "^7.21.0",
"mocha": "^8.3.0"
},
"dependencies": {}
}
4 changes: 4 additions & 0 deletions src/sun.js
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,10 @@ function isNumber(inputVal) {
function getJD(date) {
var year = date.getFullYear();
var month = date.getMonth() + 1;
if (month < 3) {
year--;
month += 12;
}
var day = date.getDate();

var A = Math.floor(year / 100);
Expand Down
71 changes: 41 additions & 30 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,17 @@ var SolarCalc = require('../'); // our module

describe('suncalc', function() {

describe('2021-02-14 in Paris', function() {
it('get sunset', function() {
var solarCalc = new SolarCalc(
new Date(2021, 1, 14),
48.85341,
2.3488
);
assert.strictEqual(1613322598000, solarCalc.sunset.getTime());
});
});

describe('2015-03-08 in North Carolina', function() {
var solarCalc;

Expand All @@ -17,63 +28,63 @@ describe('suncalc', function() {
});

it('get solar noon', function() {
assert.equal(1425835523000, solarCalc.solarNoon.getTime());
assert.strictEqual(1425835523000, solarCalc.solarNoon.getTime());
});

it('get golden hour start', function() {
assert.equal(1425854506000, solarCalc.goldenHourStart.getTime());
assert.strictEqual(1425854506000, solarCalc.goldenHourStart.getTime());
});

it('get golden hour end', function() {
assert.equal(1425816570000, solarCalc.goldenHourEnd.getTime());
assert.strictEqual(1425816570000, solarCalc.goldenHourEnd.getTime());
});

it('get night end', function() {
assert.equal(1425809446000, solarCalc.nightEnd.getTime());
assert.strictEqual(1425809446000, solarCalc.nightEnd.getTime());
});

it('get nautical dawn', function() {
assert.equal(1425811226000, solarCalc.nauticalDawn.getTime());
assert.strictEqual(1425811226000, solarCalc.nauticalDawn.getTime());
});

it('get dawn', function() {
assert.equal(1425813000000, solarCalc.dawn.getTime());
assert.strictEqual(1425813000000, solarCalc.dawn.getTime());
});

it('get sunrise', function() {
assert.equal(1425814530000, solarCalc.sunrise.getTime());
assert.strictEqual(1425814530000, solarCalc.sunrise.getTime());
});

it('get sunriseEnd', function() {
assert.equal(1425814688000, solarCalc.sunriseEnd.getTime());
assert.strictEqual(1425814688000, solarCalc.sunriseEnd.getTime());
});

it('get sunsetStart', function() {
assert.equal(1425856389000, solarCalc.sunsetStart.getTime());
assert.strictEqual(1425856389000, solarCalc.sunsetStart.getTime());
});

it('get sunset', function() {
assert.equal(1425856548000, solarCalc.sunset.getTime());
assert.strictEqual(1425856548000, solarCalc.sunset.getTime());
});

it('get dusk', function() {
assert.equal(1425858080000, solarCalc.dusk.getTime());
assert.strictEqual(1425858080000, solarCalc.dusk.getTime());
});

it('get nautical dusk', function() {
assert.equal(1425859857000, solarCalc.nauticalDusk.getTime());
assert.strictEqual(1425859857000, solarCalc.nauticalDusk.getTime());
});

it('get night start', function() {
assert.equal(1425861641000, solarCalc.nightStart.getTime());
assert.strictEqual(1425861641000, solarCalc.nightStart.getTime());
});

it('should get moon illuminosity', function() {
assert.equal(83, Math.round(solarCalc.lunarIlluminosity * 100));
assert.strictEqual(83, Math.round(solarCalc.lunarIlluminosity * 100));
});

it('should get moon distance', function() {
assert.equal(384758, solarCalc.lunarDistance);
assert.strictEqual(384758, solarCalc.lunarDistance);
});

});
Expand All @@ -92,63 +103,63 @@ describe('suncalc', function() {
});

it('get solar noon', function() {
assert.equal(1435075933000, solarCalc.solarNoon.getTime());
assert.strictEqual(1435075933000, solarCalc.solarNoon.getTime());
});

it('get golden hour start', function() {
assert.equal(1439856000000, solarCalc.goldenHourStart.getTime());
assert.strictEqual(1439856000000, solarCalc.goldenHourStart.getTime());
});

it('get golden hour end', function() {
assert.equal(1430006400000, solarCalc.goldenHourEnd.getTime());
assert.strictEqual(1430006400000, solarCalc.goldenHourEnd.getTime());
});

it('get night end', function() {
assert.equal(1424476800000, solarCalc.nightEnd.getTime());
assert.strictEqual(1424476800000, solarCalc.nightEnd.getTime());
});

it('get nautical dawn', function() {
assert.equal(1425859200000, solarCalc.nauticalDawn.getTime());
assert.strictEqual(1425859200000, solarCalc.nauticalDawn.getTime());
});

it('get dawn', function() {
assert.equal(1427155200000, solarCalc.dawn.getTime());
assert.strictEqual(1427155200000, solarCalc.dawn.getTime());
});

it('get sunrise', function() {
assert.equal(1428364800000, solarCalc.sunrise.getTime());
assert.strictEqual(1428364800000, solarCalc.sunrise.getTime());
});

it('get sunriseEnd', function() {
assert.equal(1428451200000, solarCalc.sunriseEnd.getTime());
assert.strictEqual(1428451200000, solarCalc.sunriseEnd.getTime());
});

it('get sunsetStart', function() {
assert.equal(1441411200000, solarCalc.sunsetStart.getTime());
assert.strictEqual(1441411200000, solarCalc.sunsetStart.getTime());
});

it('get sunset', function() {
assert.equal(1441497600000, solarCalc.sunset.getTime());
assert.strictEqual(1441497600000, solarCalc.sunset.getTime());
});

it('get dusk', function() {
assert.equal(1442707200000, solarCalc.dusk.getTime());
assert.strictEqual(1442707200000, solarCalc.dusk.getTime());
});

it('get nautical dusk', function() {
assert.equal(1444003200000, solarCalc.nauticalDusk.getTime());
assert.strictEqual(1444003200000, solarCalc.nauticalDusk.getTime());
});

it('get night start', function() {
assert.equal(1445385600000, solarCalc.nightStart.getTime());
assert.strictEqual(1445385600000, solarCalc.nightStart.getTime());
});

it('should get moon illuminosity', function() {
assert.equal(22, Math.round(solarCalc.lunarIlluminosity * 100));
assert.strictEqual(22, Math.round(solarCalc.lunarIlluminosity * 100));
});

it('should get moon distance', function() {
assert.equal(378178, solarCalc.lunarDistance);
assert.strictEqual(378178, solarCalc.lunarDistance);
});
});

Expand Down