Re: pgsql: Add time/date macros for code clarity: #define DAYS_PER_YEAR

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Add time/date macros for code clarity: #define DAYS_PER_YEAR
Date: 2005-07-21 04:52:37
Message-ID: 15366.1121921557@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> Tom Lane wrote:
>>> #define DAYS_PER_YEAR 365.25
>>> #define MONTHS_PER_YEAR 12
>>> #define DAYS_PER_MONTH 30
>>> #define HOURS_PER_DAY 24
>>
>> Considering that only one of these four is actually an accurate
>> constant, I have to question the usefulness of this.

> Yea, the problem is that these non-absolute constants are littered all
> through the code, so it is best to have them at least in one place. I
> will add a comment marking the non-accurate ones more clearly.

Unless you comment every single use of the macros, you won't have
addressed my point. No one will ever read "DAYS_PER_YEAR" in the midst
of some code and not stop to wonder "hmm, is that 365, or 365.25, or
365.2425"? And in most places where this might be used, that's not
an ignorable issue. I think it is actually better to write out the
literal number, because then you can see right away what is happening.

In short, I don't think this is an improvement.

regards, tom lane

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian 2005-07-21 04:55:45 Re: pgsql: Add time/date macros for code clarity: #define
Previous Message Bruce Momjian 2005-07-21 04:48:43 pgsql: Add comment marking non-exact time conversion macros.