I thought a bit about the function below, and see a problem, when n<0 (I
would like to decrease the date.s by one month). I still have no Idea how to
implement it.

Best regards,
Wojtek


2006/2/5, Wojciech Slusarski <wojciech.slusarski@gmail.com>:
>
> Well,
>
> Thanks for the help, but I thought about something more general, that
> could allow me adding n months to a date. I am sorry, that my question
> wasn't so clear. If someone needed, here's the code:
>
>
> EMONTH =
> function(date.s, n)
> {
>   #function adds 'n' months to 'date.s'
>   dates = timeSequence(from = format(date.s@Data, "%Y-%m-%d"), length.out= n+1, by = "month")
>   if(atoms(date.s)[1,"d"]>28)
>   {
>       if(atoms(dates)[n+1,"d"]<4)
>    {
>       emonth = dates[n+1]-atoms(dates)[n+1,"d"]*24*3600
>    } else {
>      emonth = dates[n+1]
>    }
>   } else {
>     emonth = dates[n+1]
>   }
>   emonth
> }
>
>
>
> # test
>
> date.s = timeDate("2005-12-30")
>
> > EMONTH(date.s, 2)@Data
> [1] "2006-02-28"
> Best regards,
> Wojtek
>
>
> 2006/2/5, Diethelm Wuertz <wuertz@itp.phys.ethz.ch>:
> >
> > Gabor Grothendieck wrote:
> >
> > >Try this:
> > >
> > >library(fCalendar)
> > >dates <- timeSequence(from = "2005-12-1", to = "2006-12-1", format =
> > >"%Y-%m-%d", by="month", FinCenter = "Europe/Warsaw")
> > >dates <- timeLastDayInMonth(dates)
> > >
> > >
> > Alternatively you can use
> >
> > > timeSequence(from = "2006-01-01", to = "2007-01-01", format =
> > + "%Y-%m-%d", by="month", FinCenter = "Europe/Warsaw") - 3600*24
> > [1] "Europe/Warsaw"
> > [1] [2005-12-31] [2006-01-31] [2006-02-28] [2006-03-31] [2006-04-30]
> > [6] [2006-05-31] [2006-06-30] [2006-07-31] [2006-08-31] [2006-09-30]
> > [11] [2006-10-31] [2006-11-30] [2006-12-31]
> >
> > Please use proper ISO-8601 notation: 2006-01-05 and not 2006-1-5 !
> >
> > DW
> >
> > >
> > >On 2/4/06, Wojciech Slusarski < wojciech.slusarski@gmail.com> wrote:
> > >
> > >
> > >>Dear R users,
> > >>
> > >>Could anyone help me with creating a monthly series of dates?
> > >>When I try to do:
> > >>
> > >>dates = timeSequence(from = "2005-12-31", to = "2006-12-31", format =
> > >>"%Y-%m-%d", by="month", FinCenter = "Europe/Warsaw")
> > >>
> > >>I get:
> > >>
> > >>
> > >>
> > >>>dates
> > >>>
> > >>>
> > >>[1] "Europe/Warsaw"
> > >> [1] [2005-12-31] [2006-01-31] [2006-03-03] [2006-03-31] [2006-05-01]
> > >> [6] [2006-05-31] [2006-07-01] [2006-07-31] [2006-08-31] [2006-10-01]
> > >>[11] [2006-10-31] [2006-12-01] [2006-12-31]
> > >>
> > >>Unfourtunately, I would like to heave end of month at each point.
> > >>I thought, that maybe using this function would also help when trying
> > to add
> > >>a month to a date. I would like to have
> > >>
> > >>"2006-01-31" + 1M = "2006-02-28"
> > >>
> > >>in MS EXCEL I would use EDATE("2006-01-31";1), and that would work. I
> > >>couldn't find any similar function in R for that. Am I missing some
> > >>function?
> > >>
> > >>Best regards,
> > >>Wojtek
> > >>
> > >>       [[alternative HTML version deleted]]
> > >>
> > >>_______________________________________________
> > >> R-sig-finance@stat.math.ethz.ch mailing list
> > >>https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> > >>
> > >>
> > >>
> > >
> > >_______________________________________________
> > >R-sig-finance@stat.math.ethz.ch mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> > >
> > >
> > >
> >
> > _______________________________________________
> > R-sig-finance@stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> >
>
>

	[[alternative HTML version deleted]]

