2010-04-09 24 views
4

我的任務是從一些奇怪的舊系統讀取一些數據。
系統包含許多日期,但它們都格式奇怪。它們是從大約55,00080,000的整數。自1800年12月28日以來,什麼日曆顯示爲天數?

我知道兩個日期肯定的:

58,112 equals February 5, 1960 (originally written as Feb 2,1960 [*]) 
61,439 equals March 16, 1969 

[*] This typo explains some of the comments initially challenging the 
    leap-year awareness of the calendar. 

在我看來,那些整數是自1800年12月28日,經過的天數,但我認爲這是一個非常奇怪的日期開始日曆上。閏年可能會出現什麼情況,而不是以後會導致問題。

有人認出這個日曆嗎?誰能告訴我什麼是正確的方法是將這些整數轉換爲人類可讀的日期?

+0

你確定它不是1801年1月1日,你只是錯過了一些閏日或什麼? – falstro 2010-04-09 11:52:30

+0

這並不奇怪。例如,Javacards上的日期是通過從1986-02-04開始的類似方案計算的:http://forums.sun.com/thread.jspa?threadID=5421557&messageID=10894720#10894720 – 2010-04-09 11:58:07

+0

@roe:不,我不是非常肯定。雖然從1960年到1969年肯定有一個閏年,這就是我在這裏問的原因。我希望有人認識到這個日曆。當我第一次在SQLite中遇到Julian Day日曆時,我遇到了同樣的問題。 – 2010-04-09 12:11:51

回答

3

聽起來像一個定製的系統給我,但是比較奇怪的一個:)

一個方法來轉換,將永遠是工作使用某種DATE_ADD()函數 - 你沒有指定哪一種語言,你」重新使用,但大多數現代語言應該有一種方法來爲日期添加一堆日子。

關於閏年,如果這兩個日期是正確的,那麼你不應該有一個問題,肯定至少有一個閏年在1960年和1969年之間:)這絕對值得檢查幾個更近的日期,以確保雖然。

6

它可能是Clarion。我正在處理類似的舊數據庫轉換爲SQL,它計算出了文件(* .dat)的號碼

+0

+1我認爲它是號角 – 2012-11-30 05:27:51

+1

+1,我也認爲它可能是[Clarion](https://en.wikipedia.org/wiki/Clarion_(programming_language) )),一種商業編程語言。 Clarion將日期序列化爲自1800年12月28日以來的天數。 如果還有時間字段,則這些時間字段將存儲爲從午夜+1開始的第100秒的數量。 Clarion日期很容易轉換使用[Excel](http://archive.clarionmag.com/cmag/v4/v4n12exceldates.html),[MSSQL](https://gist.github.com/fushnisoft/5857270)和[C#](http: //www.iprogrammable.com/2007/07/31/clarion-date-and-time-in-net/)。 – GHH 2015-08-26 16:41:49

+0

但爲何Clarion首先使用該日期? – Dai 2017-04-13 05:25:52

3

我正在使用代表朱利安日曆中的公曆日期的系統,如果要將朱利安日期公曆,你只需要數量天添加到12月28日1800

在SQL Server:

SELECT DATEADD(day, 58112, '18001228') 

的例子。對不起,我不會說英語。系統中的基準日期是12月28日1800.

1

是的,它是號角數據文件。使用 Edit1.Text:= datetostr(encodedate(1800,12,28));

相關問題