View Raw SPL
/*****************************************************************************
* *
* DAYS2YEARS.SPL Copyright (C) 2024 DSP Development Corporation *
* All Rights Reserved *
* *
* Author: Randy Race *
* *
* Synopsis: Converts days to years *
* *
* Revisions: 2 Dec 2024 RRR Creation *
* *
*****************************************************************************/
#if @HELP_DAYS2YEARS
DAYS2YEARS
Purpose: Converts days to years.
Syntax: DAYS2YEARS(days)
days - A scalar or series, the days values.
Returns: A scalar or series of years values.
Example:
days2years(3)
returns 0.008219, the number of years in 3 days.
Example:
years2days(days2years(3))
returns 3 days showing years2days and days2years are inverse
functions.
Example:
W1: 0..73..365
W2: days2years(w1)
W3: years2days(w2)
W1 contains the days series {0, 73, 146, 219, 292, 365}.
W2 contains the years series {0, 0.2, 0.4, 0.6, 0.8, 1.0}.
W3 recovers the original days series.
Remarks:
DAYS2YEARS converts an hour value or series to years.
DAYS2YEARS assumes that a leap year can occur four years after
the first full year.
See YEARS2DAYS to convert a years value or series to
days.
See Also:
DAYS2HOURS
DAYS2MINUTES
DAYS2SECONDS
YEARS2DAYS
#endif
/* convert days to years */
days2years(days = 0)
{
local years, leap_years, remaining_days, fractional_years, total_years;
local days_in_years = 365;
years = int(days / days_in_years);
leap_years = int(years / 4) - int(years / 100) + int(years / 400);
remaining_days = days - years * days_in_years - leap_years;
fractional_years = remaining_days / days_in_years;
total_years = years + fractional_years;
return (total_years);
}