2011-05-19 24 views
0

我看過時間,日期時間和日期。Ruby朱連秒

什麼是最簡單的方法來產生當前的朱連秒數?

謝謝!

回答

1

This wikipedia page有一些算法可以計算出朱利安秒。是否信任它是另一回事,但我很快從here扔出了一塊紅寶石般的方式。

class Time 
    def to_julian 
    unix = to_i 
    ss = unix % 60 
    a = (unix - ss)/60 
    mm = a % 60 
    b = (a - mm)/60 
    hh = b % 24 
    u = unix - ss - mm * 60 - hh * 3600 
    u % 86400 + 2440588 
    end 
end 

這將讓你去做

Time.now.to_julian 

的東西,如果你是這樣的傾向。

希望它可以幫助

+0

可以將其簡化。 'a,ss = unix.divmod(60)''b,mm = a.divmod(60)' – sawa 2011-05-19 18:53:51

+0

@sawa我沒有意識到有一個函數divmod。每天學些新東西! XD – 2011-05-19 19:06:20

+1

您可以爲Julian天數編號爲Date.today.jd,或者爲天文Julian天編號爲Date.today.ajd。 – steenslag 2011-05-19 19:47:32

3
require 'date' 

secs_after_midnight = Time.now.to_i % 86400 
today = Date.today 
puts "Julian seconds : #{today.jd * 86400 + secs_after_midnight}" 
puts "Astronomical Julian seconds : #{today.ajd.to_i * 86400 + secs_after_midnight}" 
puts "Astronomical Modified Julian seconds: #{today.amjd.to_i * 86400 + secs_after_midnight}" 

輸出

Julian seconds : 212172639571 
Astronomical Julian seconds : 212172553171 
Astronomical Modified Julian seconds: 4812553171