Excel自1899年12月30日以来的天数,来自R中的POSIX

ogsagwnx  于 2022-11-26  发布在  其他
关注(0)|答案(1)|浏览(234)

我有一个在R POSIX中的日期,需要提供一个 Dataframe ,它在Excel中是十进制格式以来的天数-这是自1899年12月30日以来的天数,小时是24的分数。
我只能找到相反的例子。
已经有一个去下面,但有点冗长,我敢肯定一定有一个现有的函数在lubridate或openxlsx?

library(lubridate)

start_date <- "1899-12-31"
  end_date <- "2022-11-15 07:00:00"
  
  d8_df <- as.character(seq(
    from=as.POSIXct(start_date, tz="UTC"),
    to=as.POSIXct(end_date, tz="UTC"),
    by="day"
  ))
  
  day_decimal <- NROW(d8_df)+hour(ymd_hms(end_date))/24
yi0zb3m4

yi0zb3m41#

如果需要天数,则为seq(0, 44883)。在Excel中,0表示1900-01-01,44883表示2022-11-18。当前日期仅为自1900年以来的天数。

library(openxlsx2)
dat <- data.frame(days_since_31Dec1899 = c(0, 44883))

wb <- wb_workbook() %>% 
  wb_add_worksheet() %>% wb_add_data(x = dat) %>% 
  wb_add_numfmt(dims = "A2:A3", numfmt = 22) %>% 
  wb_open()

相关问题