5

我的任务是从一些奇怪的旧系统中读取一些数据。
该系统包含许多日期,但它们的格式都很奇怪。它们是整数,范围从大约55,00080,000

我肯定知道两个日期:

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 日以来经过的天数。但我认为开始日历的日期非常奇怪。闰年可能会发生一些事情,而这不会在以后引起问题。

有人认识这个日历吗?谁能告诉我将这些整数转换为人类可读日期的正确方法是什么?

4

5 回答 5

7

可能是 Clarion。我正在使用类似的旧数据库转换为 SQL,它发现文件 (*.dat) 是 clarion

于 2010-12-16T10:28:50.713 回答
4

我正在使用一个在儒略历中表示公历日期的系统,如果要将儒略日期转换为公历,只需将数量天数添加到 1800 年 12 月 28 日。

在 SQL Server 中:

SELECT DATEADD(day, 58112, '18001228')

举个例子。对不起,我不会说英语。您系统中的基准日期是 1800 年 12 月 28 日。

于 2012-08-11T03:10:45.940 回答
3

对我来说听起来像是一个定制的系统,但一个相当奇怪的系统:)

一种始终有效的转换方法是使用某种 date_add() 函数 - 您无需指定您使用的是哪种语言,但大多数现代语言应该有一种方法可以将一堆日期添加到日期。

关于闰年,如果这两个日期是正确的,那么你应该没有问题,肯定至少有 1 个闰年 betweek 1960 和 1969 :) 绝对值得检查几个最近的日期以确保。

于 2010-04-09T11:52:43.000 回答
2

这并不奇怪。例如,Javacards 上的日期是从 1986-02-04 开始的类似方案计算的:http ://forums.sun.com/thread.jspa?threadID=5421557&messageID=10894720#10894720

于 2010-04-09T11:58:23.187 回答
2

是的,它是 Clarion 数据文件。使用 Edit1.Text := datetostr(encodedate(1800,12,28) );

于 2016-10-24T15:30:06.993 回答