[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]
st: RE: Re: Getting end of month
Michael and Svend are clearly spot on
in suggesting that the key to this
is getting the day before the first
day of the next month.
In addition, -egenmore- on SSC has carried
canned -egen- functions to do this for about
six years now.
How about this:
// Create 3 dates for the exercise:
input d m y
20 1 1991
10 3 2005
24 12 2005
drop m d y
format date %d
// Here we go:
gen dd = day(date)
gen mm = month(date)
gen yyyy = year(date)
gen mm1=mm+1 if mm<12
replace mm1=1 if mm==12
replace yyyy=yyyy+1 if mm==12
gen date1 = mdy(mm1,1,yyyy)-1
format date1 %d
I just subtracted 1 from the first day in the following month.
But note the small "complication" with December.
> No, but it's a fairly simple calculation, just subtract 1 day
> from the first
> of the next month and make sure to deal with December dates:
> gen newdate=mdy( month(date)+1,1,year(date))-1
> replace newdate=mdy(12,31,year(date)) if month(date)==12
> It could be done in a single line by combining these using cond()
> > I'm converting a set of dates to the end of the respective
> month, for
> > instance:
> > 20Jan91 -> 31Jan91
> > 10Mar05 -> 30Mar05
> > Etc.
> > Does anyone knows a function in Stata that does this automatically?
* For searches and help try: