Разница между датами не целое число

Почему это не дает мне целое количество дней?

difftime("2015-04-22", "2014-10-30")

Time difference of 173.9583 days

person ChrisP    schedule 08.06.2017    source источник
comment
Я ценю, что могу округлить это, но я смущен поведением по умолчанию.   -  person ChrisP    schedule 08.06.2017
comment
Вы можете использовать ?difftime для просмотра документации. difftime("2015-04-22", "2014-10-30", units="days")   -  person JasonWang    schedule 08.06.2017
comment
@JasonWang дает тот же результат   -  person ChrisP    schedule 08.06.2017
comment
Это работает на вашем - если да, то думаю, это как-то связано с моим компьютером?   -  person ChrisP    schedule 08.06.2017
comment
Какая у тебя версия R?   -  person JasonWang    schedule 08.06.2017
comment
R версия 3.4.0 (21 апреля 2017 г.)   -  person ChrisP    schedule 08.06.2017
comment
0,9583 * 24 = 23. Может сейчас летнее время? Велла Велла Велла   -  person ekstroem    schedule 08.06.2017
comment
Ааа, может часы меняются...   -  person ChrisP    schedule 08.06.2017
comment
В R 3.2.2 даже код в вопросе дает 174.   -  person Benjamin    schedule 08.06.2017
comment
Я предположил, что, поскольку компонента времени не было, то же самое будет применяться к обеим датам, но это не имеет значения, если изменения часов применяются автоматически - как мне это остановить?   -  person ChrisP    schedule 08.06.2017
comment
Это работает? difftime(as.Date("2015-04-22"), as.Date("2014-10-30"))   -  person JasonWang    schedule 08.06.2017
comment
@JasonWang - попробовал 3.3.2 и получил ту же проблему. Это определенно (?) вещь с переводом часов   -  person ChrisP    schedule 08.06.2017


Ответы (1)


Используйте класс Date, чтобы избежать дополнительной сложности временных меток, перехода на летнее время и т. д.

> as.Date("2015-04-22") - as.Date("2014-10-30")
Time difference of 174 days
person Gregor Thomas    schedule 08.06.2017