npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

julian

v0.2.0

Published

Convert between Date object and Julian dates used in astronomy and history

Downloads

25,357

Readme

julian

Convert between JavaScript's Date object and Julian dates used in astronomy and history.

usage

  var julian = require('julian');

  var now = new Date();           // Let's say it's Thu, 21 Nov 2013 10:47:02 GMT
  var jd = '';

  console.log(jd = julian(now));  // -> '2456617.949335'
  console.log(julian.toDate(jd)); // -> Timestamp above in local TZ

api

julian(date)

Convert a Date into a string representing Julian Date.

julian.toDate(jd)

Convert a Julian Date to a javascript Date.

julian.toJulianDay(date)

return a javascript Date or timestamp to the julian day. An integer day is returned.

julian.toMillisecondsInJulianDay (date)

returns the number of milliseconds since the start of the julian day. Note, the julian day starts at noon, not at midnight. This seems strange, if you don't have an accurate clock, then finding noon accurately is easy (from the sun) but finding midnight is not easy. Julian days have been used by astronomers since before accurate clocks.

julian.fromJulianDayAndMilliseconds(day, ms)

Converts a julian day and ms back to a javascript timestamp. Also, note that this is reversable with out floating point errors.

var date = Date.now()

assert.equal(
  julian.fromJulianDayAndMilliseconds(
    julian.toJulianDay(date),
    julian.toMillisecondsInJulianDay(date)
  ),
  date
)

notice

Date systems are a mess. Leap years, leap seconds, epochs, different calendars using the same nomenclature, different countries using different calendars at the same time, etc.

This library doesn't even try to cope with all that shit.

If you want to display calendar dates in format appropriate for a given culture at a given time in history - well, first of all, good luck to you. For example, the October Revolution took place in what most of us now call November. That's because in Tsar's Russia they still used obsolete Julian calendar until bolsheviks finally adopted Gregorian. Hey thanks, Lenin!

Luckily for historians and astronomers, they can just say the revolution began on 2421540 Julian Day, and that's the whole point. You don't mess with naming days, you just count them. Day 0 would be 1 January 4713 BC. Or is that 27 Nov 4714 BC? Fuck.

license

MIT

author

Stepan Stolyarov [email protected]