[R] Operations with dates just as Month and Day and not Year

Jim Lemon drjimlemon at gmail.com
Sat Jan 24 11:12:23 CET 2015


Hi Camilo,
If I understand the above, you want to find the minimum number of days
between two day-month dates when there is no information about the
year. I think if you take the difference of the two dates with the
same year and the difference of the dates after subtracting a year
from the "latest" date, the minimum of the two will be the answer you
want.

get_min_date_diff<-function(date1,date2) {
 d1<-as.Date(date1,"%m-%d")
 d2<-as.Date(date2,"%m-%d")
 if(d2 > d1) {
  d3<-
   as.Date(paste(date2,as.numeric(format(d2,"%Y"))-1,sep="-"),"%m-%d-%Y")
  dd1<-d2 - d1
  dd2<-d1 - d3
 }
 else {
  d3<-
   as.Date(paste(date1,as.numeric(format(d1,"%Y"))-1,sep="-"),"%m-%d-%Y")
  dd1<-d1 - d2
  dd2<-d2 - d3
 }
 return(min(c(dd1,dd2)))
}

Kind of complicated, and assumes the "%m-%d" format, but it may be
what you want.

Jim


On Sat, Jan 24, 2015 at 4:21 PM, Camilo Mora <cmora at dal.ca> wrote:
> Hi everyone,
>
> I am trying to calculate the number of days between any two dates in a year regardless of the year. Specifically, image two dates:
> MonDay1 <-   "01-30"      #January 30
> MonDay2 <-   "12-31"      #December 31
>
> I want the difference of those two dates to be
> MonDay1- MonDay2=30 days   #January is closer to December from the prior year than to the December in the year when January is.
>
> FYI. this calculation is to count the number of days between any given date to the peak of the summer, which in the southern hemisphere can be around December.
>
> Unfortunately, I have not been able to make R recognize a date as just Mon-Day. If I try:
> MonDay1<-as.Date("01-30",format="%m-%d")    # this automatically assigns the current year
> [1] "2015-01-30"
>
> This following code allows to define just Mon-Day but it is recognized as character:
> format(strptime("07-30", format="%j"), format="%m-%d")
>
> Any help will be greatly appreciated,
>
> Thanks,
>
> Camilo
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list