This function calculates the time difference from a given initial time to the current time and prints it with a specified prefix. Optionally, it can also print a session summary.
Usage
cat_diff(
  init_time,
  chunk_text = "Session summary",
  prefix = "Completed in ",
  cat_info = FALSE,
  level = 0L,
  cat_timestamp = FALSE,
  verbose = TRUE,
  ...
)Arguments
- init_time
 POSIXct. The initial time from which the difference is calculated.- chunk_text
 Character. The message printed as chunk info. Default value:
Session summary. See: info_chunk for more information.- prefix
 Character. prefix to prepend to the printed time difference. Defaults to "Completed in ".
- cat_info
 Logical. If
TRUE, prints a session summary using info_chunk ("Session summary"). Defaults toFALSE.- level
 integer; the level at which the message will be printed. If e.g.
level = 1L, the following string will be printed at the beginning of the message: " >>> ". Default is0.- cat_timestamp
 logical; whether to include the time in the timestamp. Default is
TRUE. IfFALSE, only the text is printed.- verbose
 logical; whether to print output to console. Default is
TRUE. IfFALSE, the function does nothing. This is useful to suppress the function output in certain contexts.- ...
 Additional arguments for cat_time.
Value
The function is used for its side effect of printing to the console and does not return any value.
Examples
# basic usage
reference_time <- (lubridate::now() - lubridate::seconds(45))
cat_diff(reference_time)
#> Completed in 00:00:45
# custom prefix text
cat_diff(reference_time, prefix = "Finished in ")
#> Finished in 00:00:45
# level = 1
cat_diff(reference_time, prefix = "Finished in ", level = 1L)
#>   >>>  Finished in 00:00:45
# print date
cat_diff(reference_time, prefix = "Finished in ", cat_timestamp = TRUE)
#> Finished in 00:00:45 - 12:19:39
# print date and time
cat_diff(reference_time, prefix = "Finished in ", cat_date = TRUE)
#> Finished in 00:00:45 - 03/11/2025
# show chunk info
cat_diff(reference_time, cat_info = TRUE, prefix = "Finished in ")
#> 
#> --------------------------------------------------
#> Session summary - 03/11/2025
#> --------------------------------------------------
#> 
#> 
#> Finished in 00:00:45
# custom chunk info text
cat_diff(
  reference_time, cat_info = TRUE, chunk_text = "Summary of task",
  prefix = "Finished in ")
#> 
#> --------------------------------------------------
#> Summary of task - 03/11/2025
#> --------------------------------------------------
#> 
#> 
#> Finished in 00:00:45
# |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reference_time <- (lubridate::now() -
    (lubridate::minutes(50) + lubridate::seconds(45)))
cat_diff(reference_time)
#> Completed in 00:50:45
reference_time <- (lubridate::now() - lubridate::minutes(50))
cat_diff(reference_time)
#> Completed in 00:50:00
reference_time <- (lubridate::now() - lubridate::minutes(70))
cat_diff(reference_time)
#> Completed in 01:10:00
reference_time <- (lubridate::now() - lubridate::hours(4))
cat_diff(reference_time)
#> Completed in 04:00:00
reference_time <- lubridate::now() -
  (lubridate::hours(4) + lubridate::minutes(50) + lubridate::seconds(45))
cat_diff(reference_time)
#> Completed in 04:50:45