Ignore:
Timestamp:
05/11/06 12:35:53 (18 years ago)
Author:
smasson
Message:

debug + new xxx

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ToBeReviewed/CALENDRIER/julday.pro

    r9 r69  
    8484;- 
    8585; 
    86 function JULDAY, MONTH, DAY, YEAR, Hour, Minute, Second, NDAYSPM = ndayspm 
     86function JULDAY, MONTH, DAY, YEARin, Hour, Minute, Second, NDAYSPM = ndayspm 
    8787;------------------------------------------------------------ 
    8888@cm_4cal 
     
    9595  IF n_elements(key_caltype) EQ 0 THEN key_caltype = 'greg' 
    9696  if keyword_set(ndayspm) then key_caltype = '360d' 
     97; 
     98 
     99  YEAR = long(yearin) 
     100  zero = where(year EQ 0, cnt) 
     101  IF cnt NE 0 THEN YEAR[zero] = 654321L 
    97102; 
    98103  CASE key_caltype OF 
     
    170175; 
    171176; by seb Aug 2003 
     177 
    172178      tochange = where(L_MONTH LT 0) 
    173179      IF tochange[0] NE -1 THEN BEGIN 
     
    175181        L_MONTH[tochange] =  12 + L_MONTH[tochange] MOD 12 
    176182      ENDIF 
     183 
    177184      tochange = where(L_MONTH GT 12) 
    178185      IF tochange[0] NE -1 THEN BEGIN 
     
    189196      JM = L_MONTH + (1b + 12b*TEMPORARY(inJanFeb)) 
    190197 
    191  
    192198      JUL = floor(365.25d * JY) + floor(30.6001d*TEMPORARY(JM)) + L_DAY + 1720995L 
    193  
    194199 
    195200; Test whether to change to Gregorian Calandar. 
     
    252257    END  
    253258    'noleap':BEGIN 
     259 
     260      L_MONTH = LONG(MONTH) 
     261      L_DAY = LONG(DAY) 
     262      L_YEAR = LONG(YEAR) 
     263; 
     264      tochange = where(L_MONTH LT 0) 
     265      IF tochange[0] NE -1 THEN BEGIN 
     266        L_YEAR[tochange] = L_YEAR[tochange]+L_MONTH[tochange]/12-1 
     267        L_MONTH[tochange] =  12 + L_MONTH[tochange] MOD 12 
     268      ENDIF 
     269; 
     270      tochange = where(L_MONTH GT 12) 
     271      IF tochange[0] NE -1 THEN BEGIN 
     272        L_YEAR[tochange] = L_YEAR[tochange]+L_MONTH[tochange]/12 
     273        L_MONTH[tochange] =  L_MONTH[tochange] MOD 12 
     274      ENDIF 
     275; 
     276      L_YEAR =  L_YEAR - 1 
     277; 
     278      daysyear = long(total([0, 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30], /cumulative)) 
     279 
     280      return, 365*L_YEAR + daysyear[L_MONTH] + L_DAY 
     281 
    254282    END  
    255283    ELSE:return, report('only 3 types of calendar are accepted: greg, 360d and noleap') 
Note: See TracChangeset for help on using the changeset viewer.