FNLMath : Utilities : NDAYS
NDAYS
This function computes the number of days from January 1, 1900, to the given date.
Function Return Value
NDAYS — Function value. (Output)
If NDAYS is negative, it indicates the number of days prior to January 1, 1900.
Required Arguments
IDAY — Day of the input date. (Input)
MONTH — Month of the input date. (Input)
IYEAR — Year of the input date. (Input)
1950 would correspond to the year 1950 A.D. and 50 would correspond to year 50 A.D.
FORTRAN 90 Interface
Generic: NDAYS (IDAY, MONTH, IYEAR)
Specific: The specific interface name is NDAYS.
FORTRAN 77 Interface
Single: NDAYS (IDAY, MONTH, IYEAR)
Description
Function NDAYS returns the number of days from January 1, 1900, to the given date. The function NDAYS returns negative values for days prior to January 1, 1900. A negative IYEAR can be used to specify B.C. Input dates in year 0 and for October 5, 1582, through October 14, 1582, inclusive, do not exist; consequently, in these cases, NDAYS issues a terminal error.
Comments
1. Informational error
Type
Code
Description
1
1
The Julian calendar, the first modern calendar, went into use in 45 B.C. No calendar prior to 45 B.C. was as universally used nor as accurate as the Julian. Therefore, it is assumed that the Julian calendar was in use prior to 45 B.C.
2. The number of days from one date to a second date can be computed by two references to NDAYS and then calculating the difference.
3. The beginning of the Gregorian calendar was the first day after October 4, 1582, which became October 15, 1582. Prior to that, the Julian calendar was in use. NDAYS makes the proper adjustment for the change in calendars.
Example
The following example uses NDAYS to compute the number of days from January 15, 1986, to February 28, 1986:

USE NDAYS_INT
USE UMACH_INT

IMPLICIT NONE
INTEGER IDAY, IYEAR, MONTH, NDAY0, NDAY1, NOUT
!
IDAY = 15
MONTH = 1
IYEAR = 1986
NDAY0 = NDAYS(IDAY,MONTH,IYEAR)
IDAY = 28
MONTH = 2
IYEAR = 1986
NDAY1 = NDAYS(IDAY,MONTH,IYEAR)
CALL UMACH (2, NOUT)
WRITE (NOUT,*) 'Number of days = ', NDAY1 - NDAY0
END
Output

Number of days = 44