;------------------------------------------------------------- ;+ ; NAME: ; MONTHNAMES ; PURPOSE: ; Returns a string array of month names. ; CATEGORY: ; CALLING SEQUENCE: ; mnam = monthnames([num]) ; INPUTS: ; num = optional month number (can be array). in ; KEYWORD PARAMETERS: ; Keywords: ; /FULL return full month name (else 3 letters only). ; /UPPER force all upper case (else mixed). ; /LOWER force all lower case (else mixed). ; /ORDER adds the month number at front, like 04_Apr, so ; the strings will sort in time order. Useful in file ; names. ; /NOZERO Drop element 0 when returning an array of all ; months. The purpose of element 0 was to allow indexing ; into the array using the month number. But for ; generating a list of file names that may not be wanted. ; OUTPUTS: ; mnam = returned month name(s). out ; if num not given or is 0 a string array of all months ; is returned: ['Error','January',...'December'] ; modified by the keywords. ; COMMON BLOCKS: ; NOTES: ; MODIFICATION HISTORY: ; R. Sterner, 18 Sep, 1989 ; R. Sterner, 2001 May 24 --- Now returns name of given month. ; R. Sterner, 2010 May 04 --- Converted arrays from () to []. ; R. Sterner, 2012 Mar 09 --- Added /ORDER, cleaned up code. ; R. Sterner, 2012 Mar 09 --- Added /NOZERO. ; ; Copyright (C) 1989, Johns Hopkins University/Applied Physics Laboratory ; This software may be used, copied, or redistributed as long as it is not ; sold and this copyright notice is reproduced on each copy made. This ; routine is provided as is without any express or implied warranties ; whatsoever. Other limitations apply as described in the file disclaimer.txt. ;- ;------------------------------------------------------------- function monthnames, num0, upper=upper, lower=lower, full=full, $ order=order, nozero=nozero, help=hlp if keyword_set(hlp) then begin print,' Returns a string array of month names.' print,' mnam = monthnames([num])' print,' num = optional month number (can be array). in' print,' mnam = returned month name(s). out' print,' if num not given or is 0 a string array of all months' print," is returned: ['Error','January',...'December']" print,' modified by the keywords.' print,' Keywords:' print,' /FULL return full month name (else 3 letters only).' print,' /UPPER force all upper case (else mixed).' print,' /LOWER force all lower case (else mixed).' print,' /ORDER adds the month number at front, like 04_Apr, so' print,' the strings will sort in time order. Useful in file' print,' names.' print,' /NOZERO Drop element 0 when returning an array of all' print,' months. The purpose of element 0 was to allow indexing' print,' into the array using the month number. But for' print,' generating a list of file names that may not be wanted.' return, -1 endif ;-------------------------------------------------------------- ; Set up array of all month names ;-------------------------------------------------------------- nam = ['Error','January','February','March','April','May',$ 'June','July','August','September','October',$ 'November','December'] ;-------------------------------------------------------------- ; Determine month number ; ; If one or more month numbers are given use those months. ; If none is given, or 0 is given then use all months. ;-------------------------------------------------------------- if n_elements(num0) eq 0 then flag=0 else flag=1 if (flag eq 1) and (n_elements(num0) eq 1) then begin if (num0[0] eq 0) then flag=0 endif if flag eq 0 then num=indgen(13) else num=num0 ;-------------------------------------------------------------- ; Pull out and modify requested months. ;-------------------------------------------------------------- nam = nam[num] if not keyword_set(full) then nam=strmid(nam,0,3) if keyword_set(upper) then nam=strupcase(nam) if keyword_set(lower) then nam=strlowcase(nam) if keyword_set(order) then nam=string(num,form='(I2.2)')+'_'+nam if keyword_set(nozero) and (flag eq 0) then nam=nam[1:*] return, nam end