tags:

views:

54

answers:

2

I have been tasked to read in some data from some weird old system.
The system contains many dates but they are all oddly formatted. They are integer numbers ranging from approximately 55,000 to 80,000.

I know two dates for certain:

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.

It appears to me that those integer numbers are the number of days elapsed since December 28, 1800. But I think that's a very strange date to start a calendar on. There is probably going something on with leap years and what-not that is doing to bite me in the ass later on.

Does anyone recognise this calendar? Can anyone tell me what the proper way is to convert those integers to human readable dates?

Thanks in advance!

+2  A: 

sounds like a bespoke system to me, but a rather strange one :)

one way to convert that will always work is use some sort of date_add() function - you don't specify which language you're using but most modern languages should have a way to add a bunch of days to a date.

regarding leap years, if those 2 dates are correct then you shouldn't have a problem, there was definitely at least 1 leap year betweek 1960 and 1969 :) it's definitely worth checking a few more recent dates just to make sure though.

oedo
+2  A: 

It is not so strange. For example, date on Javacards is calculated by similiar scheme starting from 1986-02-04: http://forums.sun.com/thread.jspa?threadID=5421557&messageID=10894720#10894720

FractalizeR