Skip to content
Prev 319232 / 398506 Next

Calculation with date

The lubridate and seq solutions work because they rely on your
specification that the returned date be the first day of the desired
subsequent months. Without that requirement they would not always
work. For example, if you wanted to add Vec months to the last day of
March rather than the first day, the second date produced by those
solutions is in May which the month following the desired month
(April):
1 parsed with %d-%m-%Y
[1] "2013-03-31" "2014-05-01" "2014-01-31" "2013-07-31"

and
[1] "2013-03-31" "2014-05-01" "2014-01-31" "2013-07-31"


The mondate package does date arithmetic in months and is guaranteed
to give you a date in your desired number of subsequent months (or
previous months, btw):
[1] "2013-03-31" "2014-04-30" "2014-01-31" "2013-07-31"

To get the first day of the month, you could simply subtract the day
number of the result, as shown in previous replies:
[1] "2013-03-01" "2014-04-01" "2014-01-01" "2013-07-01"

or you could do the calculation with mondate's as follows
[1] "2013-03-01" "2014-04-01" "2014-01-01" "2013-07-01"

Hope that helps,
Dan


==================

Message: 16
Date: Sat, 9 Mar 2013 08:37:23 -0800
From: David Winsemius <dwinsemius at comcast.net>
To: Rui Barradas <ruipbarradas at sapo.pt>
Cc: r-help <r-help at r-project.org>
Subject: Re: [R] Calculation with date
Message-ID: <01E8683D-60BE-4750-AB1B-6047162CC175 at comcast.net>
Content-Type: text/plain; charset=us-ascii
On Mar 9, 2013, at 4:24 AM, Rui Barradas wrote:

            
I beg to disagree. The seq.Date function lets one create sequences by
month. The only added twist in this case is to subract to the
beginning of the current month:
[1] "2013-03-01" "2014-04-01" "2014-01-01" "2013-07-01"
David Winsemius
Alameda, CA, USA