source: trunk/SRC/Calendar/leapyr.pro @ 136

Last change on this file since 136 was 136, checked in by pinsard, 18 years ago

some improvements and corrections in some .pro file according to
aspell and idldoc log file

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 1.5 KB
Line 
1;-----------------------------------------------------------------
2;+
3;
4; @file_comments
5; determine whether the input year is a leap year or not
6; Very useful for finding number of days in a year.
7; eg. NUM_DAYS_IN_YR = 365 + leapyr(year)
8;
9; @categories calendar
10;
11; @param year {in}{required}
12; year to be tested as a leap year
13;
14; @returns
15; 0 then not a leap year, 1 then year is a leap year
16;
17; @uses cm_4cal
18;
19; @examples
20; IDL> result = leapyr(2000)
21;
22; @history
23;
24; Originally Written by: Trevor Harris, Physics Dept., University of Adelaide,
25;20/09/88
26;
27;       November 2004: correction for century years... S. Masson;
28;
29;       Every year divisible by 4 is a leap year.
30;       But every year divisible by 100 is NOT a leap year
31;       Unless the year is also divisible by 400, then it is still a
32;       leap year.
33;       This means that year 1800, 1900, 2100, 2200, 2300 and 2500 are
34;       NOT leap years, while year 2000 and 2400 are leap years.
35;       + suppress the automatic change 89 -> 1989
36;
37;       June 2005 update for new commons, Sebastien Masson.
38;
39;
40; @version $Id$
41;
42;-
43;------------------------------------------------------------
44function leapyr, year
45; include commons
46;
47  compile_opt idl2, strictarrsubs
48;
49@cm_4cal
50  yr = long(year)
51  IF n_elements(key_caltype) EQ 0 THEN key_caltype = 'greg'
52;
53  IF key_caltype NE 'greg' THEN BEGIN
54    sd = size(yr, /dimensions)
55    IF sd[0] EQ 0 THEN return, 0b ELSE return, bytarr(size(yr, /dimensions))
56  ENDIF ELSE return, (yr MOD 4 EQ 0)*((yr MOD 100 NE 0) + (yr MOD 400 EQ 0))
57
58end
Note: See TracBrowser for help on using the repository browser.