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

From: Peter Dalgaard <p.dalgaard_at_biostat.ku.dk>
Date: Wed 22 Feb 2006 - 03:36:21 EST

<gerald.herbert@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@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@biostat.ku.dk)                  FAX: (+45) 35327907

______________________________________________
R-help@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
Received on Wed Feb 22 04:10:25 2006

This archive was generated by hypermail 2.1.8 : Wed 22 Feb 2006 - 09:27:43 EST