[R] Number of Days Between Dates: Incorrect Results For Date Calucations.

Peter Dalgaard p.dalgaard at biostat.ku.dk
Tue Feb 21 17:36:21 CET 2006


<gerald.herbert at hubbardbreeders.com> writes:

> In some cases, incorrect results are produced by the code below intended to
> calculate the number of days between 2 dates.  The year in question was a
> leap year.
 
> Note the results for 2004-04-04 and 2004-04-05 are the same! They should be
> 37 and 38 respectively.

Nope. First, it depends on your timezone. Over here, they do actually
differ. However, a few weeks earlier, we have the similar phenomenon

> as.POSIXct("2004-03-29") - as.POSIXct("2004-02-27")
Time difference of 30.95833 days
> as.POSIXct("2004-03-28") - as.POSIXct("2004-02-27")
Time difference of 30 days

which is of course because March 28 was only 23 hours long which is in
turn because

> as.POSIXct("2004-03-28")
[1] "2004-03-28 CET"
> as.POSIXct("2004-03-29")
[1] "2004-03-29 CEST"
 
Get it?



> > as.integer(as.POSIXct("2004-04-02") - as.POSIXct("2004-02-27"))
> [1] 35
> > as.integer(as.POSIXct("2004-04-03") - as.POSIXct("2004-02-27"))
> [1] 36
> > as.integer(as.POSIXct("2004-04-04") - as.POSIXct("2004-02-27"))
> [1] 37
> > as.integer(as.POSIXct("2004-04-05") - as.POSIXct("2004-02-27"))
> [1] 37
> > as.integer(as.POSIXct("2004-04-06") - as.POSIXct("2004-02-27"))
> [1] 38
> 
> 
> 
> > as.integer(difftime(as.POSIXct("2004-04-06"),
> as.POSIXct("2004-02-27"),units="days"))
> [1] 38
> > as.integer(difftime(as.POSIXct("2004-04-04"),
> as.POSIXct("2004-02-27"),units="days"))
> [1] 37
> > as.integer(difftime(as.POSIXct("2004-04-05"),
> as.POSIXct("2004-02-27"),units="days"))
> [1] 37
> 
> It appears that difftime() and "-" are producing invalid results.
> 
> 
> Regards,
> 
> Gerald Herbert
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> 

-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907




More information about the R-help mailing list