1 | #include "slalib.h"
|
---|
2 | #include "slamac.h"
|
---|
3 | void slaCalyd ( int iy, int im, int id, int *ny, int *nd, int *j )
|
---|
4 | /*
|
---|
5 | ** - - - - - - - - -
|
---|
6 | ** s l a C a l y d
|
---|
7 | ** - - - - - - - - -
|
---|
8 | **
|
---|
9 | ** Gregorian calendar date to year and day in year (in a Julian
|
---|
10 | ** calendar aligned to the 20th/21st century Gregorian calendar).
|
---|
11 | **
|
---|
12 | ** (Includes century default feature: use slaClyd for years
|
---|
13 | ** before 100AD.)
|
---|
14 | **
|
---|
15 | ** Given:
|
---|
16 | ** iy,im,id int year, month, day in Gregorian calendar
|
---|
17 | ** (year may optionally omit the century)
|
---|
18 | ** Returned:
|
---|
19 | ** *ny int year (re-aligned Julian calendar)
|
---|
20 | ** *nd int day in year (1 = January 1st)
|
---|
21 | ** *j int status:
|
---|
22 | ** 0 = OK
|
---|
23 | ** 1 = bad year (before -4711)
|
---|
24 | ** 2 = bad month
|
---|
25 | ** 3 = bad day (but conversion performed)
|
---|
26 | **
|
---|
27 | ** Notes:
|
---|
28 | **
|
---|
29 | ** 1 This routine exists to support the low-precision routines
|
---|
30 | ** slaEarth, slaMoon and slaEcor.
|
---|
31 | **
|
---|
32 | ** 2 Between 1900 March 1 and 2100 February 28 it returns answers
|
---|
33 | ** which are consistent with the ordinary Gregorian calendar.
|
---|
34 | ** Outside this range there will be a discrepancy which increases
|
---|
35 | ** by one day for every non-leap century year.
|
---|
36 | **
|
---|
37 | ** 3 Years in the range 50-99 are interpreted as 1950-1999, and
|
---|
38 | ** years in the range 00-49 are interpreted as 2000-2049.
|
---|
39 | **
|
---|
40 | ** Called: slaClyd
|
---|
41 | **
|
---|
42 | ** Last revision: 22 September 1995
|
---|
43 | **
|
---|
44 | ** Copyright P.T.Wallace. All rights reserved.
|
---|
45 | */
|
---|
46 | {
|
---|
47 | int i;
|
---|
48 |
|
---|
49 | /* Default century if appropriate */
|
---|
50 | if ( ( iy >= 0 ) && ( iy <= 49 ) )
|
---|
51 | i = iy + 2000;
|
---|
52 | else if ( ( iy >= 50 ) && ( iy <= 99 ) )
|
---|
53 | i = iy + 1900;
|
---|
54 | else
|
---|
55 | i = iy;
|
---|
56 |
|
---|
57 | /* Perform the conversion */
|
---|
58 | slaClyd ( i, im, id, ny, nd, j );
|
---|
59 | }
|
---|