1cpp_update_dt <- function(dt,
2                          year,
3                          month,
4                          yday,
5                          mday,
6                          wday,
7                          hour,
8                          minute,
9                          second,
10                          tz,
11                          roll,
12                          week_start) {
13  # Catch rare integer POSIXct, retaining attributes
14  storage.mode(dt) <- "double"
15
16  year <- as.integer(year)
17  month <- as.integer(month)
18  yday <- as.integer(yday)
19  mday <- as.integer(mday)
20  wday <- as.integer(wday)
21  hour <- as.integer(hour)
22  minute <- as.integer(minute)
23
24  second <- as.double(second)
25
26  roll <- as.logical(roll)
27  week_start <- as.integer(week_start)
28
29  C_update_dt(
30    dt = dt,
31    year = year,
32    month = month,
33    yday = yday,
34    mday = mday,
35    wday = wday,
36    hour = hour,
37    minute = minute,
38    second = second,
39    tz = tz,
40    roll = roll,
41    week_start = week_start
42  )
43}
44
45cpp_force_tz <- function(dt, tz, roll) {
46  # Catch rare integer POSIXct, retaining attributes
47  storage.mode(dt) <- "double"
48
49  roll <- as.logical(roll)
50
51  # Must be a character vector, never `NULL`
52  tz <- as.character(tz)
53
54  C_force_tz(
55    dt = dt,
56    tz = tz,
57    roll = roll
58  )
59}
60
61cpp_force_tzs <- function(dt, tzs, tz_out, roll) {
62  # Catch rare integer POSIXct, retaining attributes
63  storage.mode(dt) <- "double"
64
65  # Must be a character vector, never `NULL`
66  tzs <- as.character(tzs)
67  tz_out <- as.character(tz_out)
68
69  roll <- as.logical(roll)
70
71  C_force_tzs(
72    dt = dt,
73    tzs = tzs,
74    tz_out = tz_out,
75    roll = roll
76  )
77}
78
79cpp_local_time <- function(dt, tzs) {
80  # Catch rare integer POSIXct, retaining attributes
81  storage.mode(dt) <- "double"
82
83  # Must be a character vector, never `NULL`
84  tzs <- as.character(tzs)
85
86  C_local_time(
87    dt = dt,
88    tzs = tzs
89  )
90}
91