如何獲得今日的Julian day number (JDN)相等?或任何日期,就此而言?bash - 如何獲取(當前)Julian日數?
我看了又看,但只發現生產的「年 - DAYOFYEAR」,而不是像一些功能:2457854.
如何獲得今日的Julian day number (JDN)相等?或任何日期,就此而言?bash - 如何獲取(當前)Julian日數?
我看了又看,但只發現生產的「年 - DAYOFYEAR」,而不是像一些功能:2457854.
我結束了移植一個自己。這裏是一個SSCCE:
#!/bin/bash
function GetJulianDay # year, month, day
{
year=$1
month=$2
day=$3
jd=$((day - 32075 + 1461 * (year + 4800 - (14 - month)/12)/4 + 367 * (month - 2 + ((14 - month)/12) * 12)/12 - 3 * ((year + 4900 - (14 - month)/12)/100)/4))
echo $jd
}
function GetTodayJulianDay
{
year=`date +"%Y"`
month=`date +"%m"`
day=`date +"%d"`
todayJd=$(GetJulianDay $year $month $day)
echo $todayJd
}
# samples
todayJd=$(GetTodayJulianDay)
echo "got today jd: $todayJd"
yesterdayJd=$(GetJulianDay 2017 4 9)
echo "got yesterday jd: $yesterdayJd"
您可以用date +%s --date=YYYYMMDD
獲得Unix的日期,並用它來compute the Julian Day from Unix date
它最終會是這樣的:
echo $(($(date +%s --date=YYYYMMDD)/86400 + 2440587))
編輯:我不知道這有多重要,但有些人歡迎在轉換中添加0.5。基本上這意味着如果您當前的日期/時間是在中午之後,則轉換將在1天后放置Julian日期。
我使用了我們曾經使用過的久經考驗的Java版本。你的看起來很整潔。當我有一些時間時,我會給它一個機會。 – Buffalo
in bash date +%j
返回julian日期。
[[email protected] ~]# date +%j
108
此外,未來的Julian日期也非常簡單。
[[email protected] ~]# date --date='10 days' +%j
119
[[email protected] ~]# date --date='2 weeks' +%j
123
_「108」如何像JDN一樣?請仔細閱讀問題 – Buffalo
雖然它回答了錯誤的問題(序號日期/日年號而不是儒略日期),但這是一個有用的小命令。以下是兩者之間的區別,說明爲什麼只有閱讀問題標題可能會產生混淆:https://en.wikipedia.org/wiki/Julian_day#Terminology – kevinmicke
A +用於使用* navy.mil *資源。 * jpl.gov *網站對於這些事情也非常有用。 –