# days since 1 Jan 1970

Discussion in 'Perl' started by vertigo, Jul 7, 2004.

1. ### vertigoGuest

Hello
How can i count how many there were days since 1 Jan 1970 ?

Thanx
Michal

vertigo, Jul 7, 2004

3. ### Purl GurlGuest

> vertigo wrote:

> > How can i count how many there were days since 1 Jan 1970 ?

> int time / 86400

Does that include compensation for leap seconds? =)

Purl Gurl

Purl Gurl, Jul 7, 2004

Purl Gurl wrote:
>>vertigo wrote:
>>>How can i count how many there were days since 1 Jan 1970 ?

>>
>> int time / 86400

>
> Does that include compensation for leap seconds? =)

No, that would be an exercise for a time connoisseur.

--
Email: http://www.gunnar.cc/cgi-bin/contact.pl

5. ### Purl GurlGuest

> Purl Gurl wrote:
> > > vertigo wrote:

> >>>How can i count how many there were days since 1 Jan 1970 ?

> >> int time / 86400

> > Does that include compensation for leap seconds? =)

> No, that would be an exercise for a time connoisseur.

Time connoisseur, typically boys who are almost always
a good day to a day and a half slower than us girls.

Since Jan 1, 1970, 34 years and 189 days.

One year equals 365.2425 days.

Current 365.242375 days per year, plus or minus a hemispherical .00031
seconds for our equator solar year. However, I am not a time connoisseur.

(34 * 365.2425) + 189 = 12607.245 days (plus or minus a second or two)

int time / 86400 = 12606

time / 86400 = 12606.8128240741

You boys are about a day behind us girls, plus or minus a wink or two.

Purl Gurl

Purl Gurl, Jul 7, 2004
6. ### Derek LudwigGuest

On Wed, 07 Jul 2004 12:34:55 -0700, Purl Gurl wrote:

<SNIP>

> int time / 86400 = 12606
>
> time / 86400 = 12606.8128240741
>
> You boys are about a day behind us girls, plus or minus a wink or two.

Actually, how would one know if a leap second [ 23 of them since 1970, as
per ftp://maia.usno.navy.mil/ser7/tai-utc.dat ] is missed on a system,
unless you have a way to compare its notion of "now" with some other
systems notion of "now".

At any rate, the "half-day" is more the result of your local timezone, for
time() returns the number of seconds in the epoch, which for most (but not
all) systems is midnight UTC on Jan 1, 1970 [ Dec 31, 1969 19:00
US/Eastern ]. So:

int time / 86400

will return the number of days (UTC) in the current epoch, which may or
may not be the number of days since Jan 1, 1970. Also, the number of days
will change at midnight UTC, which happens to be at 5am EST (4am EDT) for
where I am sitting. This may or may not be a problem for the originator of

Take a look at the DateTime family of modules: its julian day functions
may give you what you need.

Derek Ludwig, Jul 8, 2004
7. ### Joe SmithGuest

Purl Gurl wrote:

> Since Jan 1, 1970, 34 years and 189 days.

You mean 188.5 days. It won't be 189 days until 23:59:59.9999999 GMT.
(Day-of-year starts at 1 instead of 0.)

> (34 * 365.2425) + 189 = 12607.245 days (plus or minus a second or two)

Actually, it can be plus or minus an entire day, since leap day calculations
don't use fractional days.

> time / 86400 = 12606.8128240741

Quite reasonable, since at the time that time() was evaluated, it was not
a full 189 days after Jan 1, 2004 00:00 GMT.

-Joe

Joe Smith, Jul 8, 2004