我试着从今天开始倒数n个工作日,以得到一个具体的日期。
我想让用户输入倒数的天数,并让系统计算该日期。
假设我想从今天开始倒数100天(工作日)。
A <- readline(prompt = "How many days backwards do you want to count? ")
#user input: 100
Date to be calculated <- Today date-A (format yyyy/mm/dd)
#Date to be calculated = 2018-03-02
然后,我将使用该日期来获取为该日期存储的数据集的一些值。
任何意见都将受到高度赞赏。
发布于 2018-06-11 01:29:17
一种选择是编写一个递归函数来减去工作日。可以使用chron::is.weekend
函数来确定某一天是否为working-day
。其他决定weekend/working-day
的选项可以基于@Ryan建议的以S
开始的一天。
library(chron)
substractWorkingDays <- function(x, n){
v <- seq(x, x -n, by="-1 day")
workingDays <- sum(!is.weekend(v[-1])) #One can check day name start with `S`
if(workingDays == n){
return(v[length(v)])
}else{
substractWorkingDays(v[length(v)], n-workingDays)
}
}
#Testing it
substractWorkingDays(as.Date("2018-06-10"), 5)
#[1] "2018-06-04"
substractWorkingDays(as.Date("2018-06-10"), 10)
#[1] "2018-05-28"
substractWorkingDays(as.Date("2018-06-10"), 12)
#[1] "2018-05-24"
https://stackoverflow.com/questions/50785263
复制相似问题