I'd like to shift all contents of a TimeSeries object by one month. By shifting Feb. 1st I would expect to receive Mar. 1st.
However it's not the case for Mathematica:
dr = DateRange[{2012, 1, 1}, {2013, 1, 1}, {1, "Month"}];
ts = TimeSeries[{dr, RandomReal[{0, 1}, Length@dr]}\[Transpose]];
tss = TimeSeriesShift[ts, {1, "Month"}]
tss["Dates"] - ts["Dates"]
// {31 days,31 days,31 days,31 days,31 days,31 days,31 days,31 days,31 days,31 days,31 days,31 days,31 days}
So Mathematica just adds a fixed number of days which is a very different behavior from most of other software (MS Excel for one).
I'm asking for any tips on implementing a function that would: 1. shift a time series in a way that it will always return the same day of month in a shifted series; 2. or first/last day of month in case it is a first/last day of month in the original series.