nate — Jun 7, 2014, 4:24 PM
# assume day2 is later than day1
daysBetween <- function(date1, date2) {
# the number of days in January is 31, February is 28, etc
days_per_month = c(31,28,31,30,31,30,31,31,30,31,30,31)
# between 1 and 12
month1 = floor(date1)
month2 = floor(date2)
# between 1 and 31
days1 = (date1 - month1)*100
days2 = (date2 - month2)*100
if( (month2-month1) == 0) {
return(days2-days1)
}
total = days_per_month[month1] - days1
#cat("total is ", total, "\n")
i=(month1+1)
while(i<month2) {
total = total + days_per_month[i]
#cat("total is ", total, "\n")
i=i+1
}
total = total + days2
return(total)
}
# January 1st, February 28th, June 30th, October 15th, October 31st, December 31st
date1 = 1.01
date2 = 2.28
#ans = daysBetween(date1,date2)
#print(ans)
dates = c(1.01,2.28,6.30,10.15,10.31,12.31)
for(i in 1:(length(dates)-1)) {
cat("i is:", i, "\n")
cat(" dates[i] is:", dates[i], "dates[i+1] is:", dates[i+1], "\n")
cat(" days between is:", daysBetween(dates[i], dates[i+1]),"\n")
}
i is: 1
dates[i] is: 1.01 dates[i+1] is: 2.28
days between is: 58
i is: 2
dates[i] is: 2.28 dates[i+1] is: 6.3
days between is: 122
i is: 3
dates[i] is: 6.3 dates[i+1] is: 10.15
days between is: 107
i is: 4
dates[i] is: 10.15 dates[i+1] is: 10.31
days between is: 16
i is: 5
dates[i] is: 10.31 dates[i+1] is: 12.31
days between is: 61