id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 965072308,MDU6SXNzdWU5NjUwNzIzMDg=,5687,Make cftime dateoffsets public,2448579,open,0,,,2,2021-08-10T14:57:39Z,2021-08-10T23:28:20Z,,MEMBER,,,,"Consider the following cftime vector. It's fairly common to see users asking how to subtract ""1 month"" from this kind of vector: ``` python xr.set_options(display_style=""text"") time = xr.DataArray( xr.cftime_range(""1000-01-01"", ""1000-05-01"", freq=""MS"", calendar=""360_day""), dims=""time"", name=""time"" ) time ``` ``` array([cftime.Datetime360Day(1000, 1, 1, 0, 0, 0, 0, has_year_zero=False), cftime.Datetime360Day(1000, 2, 1, 0, 0, 0, 0, has_year_zero=False), cftime.Datetime360Day(1000, 3, 1, 0, 0, 0, 0, has_year_zero=False), cftime.Datetime360Day(1000, 4, 1, 0, 0, 0, 0, has_year_zero=False), cftime.Datetime360Day(1000, 5, 1, 0, 0, 0, 0, has_year_zero=False)], dtype=object) Coordinates: * time (time) object 1000-01-01 00:00:00 ... 1000-05-01 00:00:00 ``` Subtracting `pd.Timedelta(""1 month"")` does not work because a month does not represent an absolute unit of time. Instead the solution appears to be: ``` python time - xr.coding.cftime_offsets.MonthBegin(1) ``` ``` array([cftime.Datetime360Day(999, 12, 1, 0, 0, 0, 0, has_year_zero=False), cftime.Datetime360Day(1000, 1, 1, 0, 0, 0, 0, has_year_zero=False), cftime.Datetime360Day(1000, 2, 1, 0, 0, 0, 0, has_year_zero=False), cftime.Datetime360Day(1000, 3, 1, 0, 0, 0, 0, has_year_zero=False), cftime.Datetime360Day(1000, 4, 1, 0, 0, 0, 0, has_year_zero=False)], dtype=object) Coordinates: * time (time) object 1000-01-01 00:00:00 ... 1000-05-01 00:00:00 ``` I think pandas exposes this functionality as `pd.DateOffset(months=1)`. Can we add a similar `xr.DateOffset`? ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5687/reactions"", ""total_count"": 4, ""+1"": 4, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue