Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: What about my last date functions? there are some error? |
| Date | 2016-11-08 18:06 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <87bmxp978j.fsf@bsb.me.uk> (permalink) |
| References | <gh932ctlqkebuct208fqbbc7rdak1b2c1o@4ax.com> <87d1i69r5w.fsf@bsb.me.uk> <nvsd9k$nd4$1@dont-email.me> <871sym9dpv.fsf@bsb.me.uk> <nvstum$jt5$1@dont-email.me> |
Richard Heathfield <rjh@cpax.org.uk> writes:
> On 08/11/16 15:46, Ben Bacarisse wrote:
>> Richard Heathfield <rjh@cpax.org.uk> writes:
>
> <snip>
>
>>> long tojul(int yp,int mp,int dp){long
>>> a=(14-mp)/12,y=yp+4800-a,m=mp+12*a-3,jdn=dp+(153*m+2)/5+365*y+y/4-y/100+y/400-32045;return
>>> jdn;}
>>> void fromjul(int*yp,int*mp,int*dp,long jdn){long
>>> y=4716,j=1401,m=2,n=12,r=4,p=1461,v=3,u=5,s=153,w=2,b=274277,c=-38,f=jdn+j+(((4*jdn+b)/146097)*3)/4+c,e=r*f+v,g=(e%p)/r,h=u*g+w;*dp=(h%s)/u+1;*mp=((h/s+m)%n)+1;*yp=e/p-y+(n+m-*mp)/n;}
>>
>> I usually use the standard library function for this sort of thing, but
>> if this works for you why rock the boat?
>
> A search of N1570 for "Julian" yields no hits.
I meant I'd implement to_julian using C's functions. For one thing, I'd
then be using a standard date structure. It's not a lot of code though
if you need a very wide range of dates it might be more fussy.
> <time.h> gives us clock(), difftime(), mktime(), time(),
> timespec_get(), asctime(), ctime(), gmtime(), localtime(), and
> strftime(). None of these claims to work with Julian dates.
>
> Of course, the standard library functions are perfectly adequate for
> many date-related tasks. But they do have their limitations, and for
> some purposes Julian dates are much more convenient. What's more, on
> some Unix systems the range of dates representable in a time_t is
> rather less than 140 years (roughly 1901 to 2038).
I'd try really hard to avoid using one of these! 2038 (the real Y2K
problem) is just too near.
> work with dates outside that range, one must find another way of doing
> so. The code I presented assumes astronomical numbering, i.e. there
> *is* a year 0, and that may be a problem for some people, so I will
> make the lesser claim that it works from 1/1/1 AD to many millions of
> years into the future. (I tested various cases up to 1,000,000,000
> years.)
Not on all systems. I suspect your preferred code will not go that far
out on exactly the same systems that have a limited range of time_t
values.
<snip>
--
Ben.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
What about my last date functions? there are some error? Rosario19 <Ros@invalid.invalid> - 2016-11-08 11:28 +0100
Re: What about my last date functions? there are some error? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-08 10:55 +0000
Re: What about my last date functions? there are some error? "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2016-11-08 19:00 +0800
Re: What about my last date functions? there are some error? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-08 11:04 +0000
Re: What about my last date functions? there are some error? "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2016-11-08 19:22 +0800
Re: What about my last date functions? there are some error? Richard Heathfield <rjh@cpax.org.uk> - 2016-11-08 11:35 +0000
Re: What about my last date functions? there are some error? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-08 15:46 +0000
Re: What about my last date functions? there are some error? Richard Heathfield <rjh@cpax.org.uk> - 2016-11-08 16:20 +0000
Re: What about my last date functions? there are some error? Rosario19 <Ros@invalid.invalid> - 2016-11-08 17:44 +0100
Re: What about my last date functions? there are some error? Richard Heathfield <rjh@cpax.org.uk> - 2016-11-08 16:51 +0000
Re: What about my last date functions? there are some error? Jerry Stuckle <jstucklex@attglobal.net> - 2016-11-08 13:21 -0500
Re: What about my last date functions? there are some error? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-08 18:06 +0000
Re: What about my last date functions? there are some error? Richard Heathfield <rjh@cpax.org.uk> - 2016-11-08 18:56 +0000
Re: What about my last date functions? there are some error? Keith Thompson <kst-u@mib.org> - 2016-11-08 12:05 -0800
Re: What about my last date functions? there are some error? David Brown <david.brown@hesbynett.no> - 2016-11-08 21:10 +0100
Re: What about my last date functions? there are some error? Richard Heathfield <rjh@cpax.org.uk> - 2016-11-08 20:16 +0000
Re: What about my last date functions? there are some error? jadill33@gmail.com - 2016-11-08 11:16 -0800
Re: What about my last date functions? there are some error? Richard Heathfield <rjh@cpax.org.uk> - 2016-11-08 20:08 +0000
Re: What about my last date functions? there are some error? Keith Thompson <kst-u@mib.org> - 2016-11-08 12:11 -0800
Re: What about my last date functions? there are some error? Keith Thompson <kst-u@mib.org> - 2016-11-08 12:29 -0800
Re: What about my last date functions? there are some error? Rosario19 <Ros@invalid.invalid> - 2016-11-08 17:41 +0100
Re: What about my last date functions? there are some error? asetofsymbols@gmail.com - 2016-11-08 11:26 -0800
Re: What about my last date functions? there are some error? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-08 19:38 +0000
Re: What about my last date functions? there are some error? Keith Thompson <kst-u@mib.org> - 2016-11-08 08:19 -0800
csiph-web