NCL Home > Documentation > Functions > Date routines

# yyyymm_to_yyyyfrac

Converts a one dimensional array containing yyyymm values to yyyy and fractional year.

## Prototype

```load "\$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"  ; This library is automatically loaded
; from NCL V6.2.0 onward.
; No need for user to explicitly load.

function yyyymm_to_yyyyfrac (
yyyymm    [*] : integer, float, double,
mm_offset [1] : float or double
)
```

## Arguments

yyyymm

A one dimensional array containing yyyymm values. The "mm" must range from 1 to 12 corresponding to January to December.

mm_offset

A scalar denoting the monthly offset. A value of 0.0 yields fractional values starting at 0.0. A values of 0.5 yields mid-month fractional values.

## Return value

A one dimensional array containing values of the form yyyy plus fractional part of year. If either yyyymm or mm_offset is type double the return will be type double. Otherwise type float is returned.

## Description

For each month of each year, the values yyyymm=yyyy*100+(mm-1)/12 or yyyymm=yyyy*100+((mm-mm_offset)-1)/12 are returned. For "mm" values spanning 1 through 12, the fractional parts are:

```            mm_offset  mm_offset
mm      0.0        0.5
__   _________  _________
1   0.0        0.0416667
2   0.0833333  0.125
3   0.166667   0.208333
4   0.25       0.291667
5   0.333333   0.375
6   0.416667   0.458333
7   0.5        0.541667
8   0.583333   0.625
9   0.666667   0.708333
10  0.75       0.791667
11  0.833333   0.875
12  0.916667   0.958333
```
This function is most frequently used for plotting, say, time series.

## Examples

The following requires that contributed.ncl be loaded prior to invoking the function.

``` load "\$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
```

Example 1

Convert a 1D array, yyyymm = (/ 197901 , 198407, 200112 /), to yyyy and fractional year.

```  yrfrac = yyyymm_to_yyyyfrac(yyyymm, 0.0)
YRFRAC = yyyymm_to_yyyyfrac(yyyymm, 0.5)
print(yrfrac+" "+YRFRAC))```
Each of the above yields a 1D array of length 3 values.
```    1979      1979.04
1984.5    1984.54
2001.92   2001.96
```
Example 2

Create a 1D "yyyymm" array and convert to yyyy and a fractional part.

```    TIME = yyyymm_time(1901, 2001, "integer")
yyyyFrac = yyyymm_to_yyyyfrac(TIME, 0.0)
print(yyyyFrac)
```
The above returns a 1D array of length 1212 values.
```Variable: yyyyFrac
Type: float
Total Size: 4848 bytes
1212 values
Number of Dimensions: 1
Dimensions and sizes:   [time | 1212]
Coordinates:
time: [190101..200112]
Number Of Attributes: 2
units :       YYYY + fractional portion of year
NCL : derived using function yyyymm_to_yyyyfrac
(0)     1901
(1)     1901.083
(2)     1901.167
(3)     1901.25
(4)     1901.333
[snip]
(1206)  2001.5
(1207)  2001.583
(1208)  2001.667
(1209)  2001.75
(1210)  2001.833
(1211)  2001.917
```