Converting date/time to current JDN
Clash Royale CLAN TAG#URR8PPP
I would like to convert a date/times to the Julian Date (number of days since Jan 1 4713 BCE, not the YY-ddd form where ddd is the day number of the current year). This doesn't seem to be built-in to gnudate, but I suspect it's pretty easy with the right incantation of date
and bc
.
I would prefer to be able to do this from the shell prompt or via a bash function rather than having to install some extra packages. Gnu-date and standard tools like sed awk bc
date
add a comment |
I would like to convert a date/times to the Julian Date (number of days since Jan 1 4713 BCE, not the YY-ddd form where ddd is the day number of the current year). This doesn't seem to be built-in to gnudate, but I suspect it's pretty easy with the right incantation of date
and bc
.
I would prefer to be able to do this from the shell prompt or via a bash function rather than having to install some extra packages. Gnu-date and standard tools like sed awk bc
date
There are many useful variations on this but most sensibly use a scripting language, possibly with good date libraries (look into python), but since you want it with the basics one could hardly do better than to crib from here: blog.sleeplessbeastie.eu/2013/05/17/…
– Theophrastus
Jun 11 '16 at 16:13
add a comment |
I would like to convert a date/times to the Julian Date (number of days since Jan 1 4713 BCE, not the YY-ddd form where ddd is the day number of the current year). This doesn't seem to be built-in to gnudate, but I suspect it's pretty easy with the right incantation of date
and bc
.
I would prefer to be able to do this from the shell prompt or via a bash function rather than having to install some extra packages. Gnu-date and standard tools like sed awk bc
date
I would like to convert a date/times to the Julian Date (number of days since Jan 1 4713 BCE, not the YY-ddd form where ddd is the day number of the current year). This doesn't seem to be built-in to gnudate, but I suspect it's pretty easy with the right incantation of date
and bc
.
I would prefer to be able to do this from the shell prompt or via a bash function rather than having to install some extra packages. Gnu-date and standard tools like sed awk bc
date
date
asked Jun 11 '16 at 16:04
lbutlrlbutlr
247317
247317
There are many useful variations on this but most sensibly use a scripting language, possibly with good date libraries (look into python), but since you want it with the basics one could hardly do better than to crib from here: blog.sleeplessbeastie.eu/2013/05/17/…
– Theophrastus
Jun 11 '16 at 16:13
add a comment |
There are many useful variations on this but most sensibly use a scripting language, possibly with good date libraries (look into python), but since you want it with the basics one could hardly do better than to crib from here: blog.sleeplessbeastie.eu/2013/05/17/…
– Theophrastus
Jun 11 '16 at 16:13
There are many useful variations on this but most sensibly use a scripting language, possibly with good date libraries (look into python), but since you want it with the basics one could hardly do better than to crib from here: blog.sleeplessbeastie.eu/2013/05/17/…
– Theophrastus
Jun 11 '16 at 16:13
There are many useful variations on this but most sensibly use a scripting language, possibly with good date libraries (look into python), but since you want it with the basics one could hardly do better than to crib from here: blog.sleeplessbeastie.eu/2013/05/17/…
– Theophrastus
Jun 11 '16 at 16:13
add a comment |
2 Answers
2
active
oldest
votes
OLD_JULIAN_VAR=$(date -u -d 1840-12-31 +%s)
TODAY_DATE=`date --date="$odate" +"%Y-%m-%d"`
TODAY_DATE_VAR=`date -u -d "$TODAY_DATE" +"%s"`
export JULIAN_DATE=$((((TODAY_DATE_VAR - OLD_JULIAN_VAR))/86400))
echo $JULIAN_DATE
the mathematically
[(date in sec)-(1840-12-31 in sec)]/86400
add a comment |
If you're only interested in dates that GNU date supports, you can make it spit out the number of seconds since 1970-01-01. Unix time uses a fixed number of seconds per day (leap seconds are smoothed out), so you can convert that number of seconds into a number of days simply by dividing by 86400. To convert that into the Julian day number, add the requisite fixed offset.
echo $(($(TZ=GMT+12 date +%s -d "now") / 86400 + 2440587))
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f289176%2fconverting-date-time-to-current-jdn%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
OLD_JULIAN_VAR=$(date -u -d 1840-12-31 +%s)
TODAY_DATE=`date --date="$odate" +"%Y-%m-%d"`
TODAY_DATE_VAR=`date -u -d "$TODAY_DATE" +"%s"`
export JULIAN_DATE=$((((TODAY_DATE_VAR - OLD_JULIAN_VAR))/86400))
echo $JULIAN_DATE
the mathematically
[(date in sec)-(1840-12-31 in sec)]/86400
add a comment |
OLD_JULIAN_VAR=$(date -u -d 1840-12-31 +%s)
TODAY_DATE=`date --date="$odate" +"%Y-%m-%d"`
TODAY_DATE_VAR=`date -u -d "$TODAY_DATE" +"%s"`
export JULIAN_DATE=$((((TODAY_DATE_VAR - OLD_JULIAN_VAR))/86400))
echo $JULIAN_DATE
the mathematically
[(date in sec)-(1840-12-31 in sec)]/86400
add a comment |
OLD_JULIAN_VAR=$(date -u -d 1840-12-31 +%s)
TODAY_DATE=`date --date="$odate" +"%Y-%m-%d"`
TODAY_DATE_VAR=`date -u -d "$TODAY_DATE" +"%s"`
export JULIAN_DATE=$((((TODAY_DATE_VAR - OLD_JULIAN_VAR))/86400))
echo $JULIAN_DATE
the mathematically
[(date in sec)-(1840-12-31 in sec)]/86400
OLD_JULIAN_VAR=$(date -u -d 1840-12-31 +%s)
TODAY_DATE=`date --date="$odate" +"%Y-%m-%d"`
TODAY_DATE_VAR=`date -u -d "$TODAY_DATE" +"%s"`
export JULIAN_DATE=$((((TODAY_DATE_VAR - OLD_JULIAN_VAR))/86400))
echo $JULIAN_DATE
the mathematically
[(date in sec)-(1840-12-31 in sec)]/86400
edited Feb 8 at 21:31
Jeff Schaller
42.9k1159137
42.9k1159137
answered Feb 8 at 21:07
user335957user335957
16
16
add a comment |
add a comment |
If you're only interested in dates that GNU date supports, you can make it spit out the number of seconds since 1970-01-01. Unix time uses a fixed number of seconds per day (leap seconds are smoothed out), so you can convert that number of seconds into a number of days simply by dividing by 86400. To convert that into the Julian day number, add the requisite fixed offset.
echo $(($(TZ=GMT+12 date +%s -d "now") / 86400 + 2440587))
add a comment |
If you're only interested in dates that GNU date supports, you can make it spit out the number of seconds since 1970-01-01. Unix time uses a fixed number of seconds per day (leap seconds are smoothed out), so you can convert that number of seconds into a number of days simply by dividing by 86400. To convert that into the Julian day number, add the requisite fixed offset.
echo $(($(TZ=GMT+12 date +%s -d "now") / 86400 + 2440587))
add a comment |
If you're only interested in dates that GNU date supports, you can make it spit out the number of seconds since 1970-01-01. Unix time uses a fixed number of seconds per day (leap seconds are smoothed out), so you can convert that number of seconds into a number of days simply by dividing by 86400. To convert that into the Julian day number, add the requisite fixed offset.
echo $(($(TZ=GMT+12 date +%s -d "now") / 86400 + 2440587))
If you're only interested in dates that GNU date supports, you can make it spit out the number of seconds since 1970-01-01. Unix time uses a fixed number of seconds per day (leap seconds are smoothed out), so you can convert that number of seconds into a number of days simply by dividing by 86400. To convert that into the Julian day number, add the requisite fixed offset.
echo $(($(TZ=GMT+12 date +%s -d "now") / 86400 + 2440587))
answered Jun 12 '16 at 22:09
GillesGilles
540k12810941607
540k12810941607
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f289176%2fconverting-date-time-to-current-jdn%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
There are many useful variations on this but most sensibly use a scripting language, possibly with good date libraries (look into python), but since you want it with the basics one could hardly do better than to crib from here: blog.sleeplessbeastie.eu/2013/05/17/…
– Theophrastus
Jun 11 '16 at 16:13