首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

R递归函数将n天添加到跳过星期六/星期日和银行节假日的日期

R递归函数可以用于将n天添加到跳过星期六/星期日和银行节假日的日期。下面是一个示例的R递归函数实现:

代码语言:txt
复制
library(lubridate)

# 定义一个函数来判断日期是否为星期六或星期日
is_weekend <- function(date) {
  wday(date) %in% c(1, 7)
}

# 定义一个函数来判断日期是否为银行节假日
is_bank_holiday <- function(date) {
  # 在此处添加判断银行节假日的逻辑
  # 返回TRUE表示是银行节假日,否则返回FALSE
}

# 定义递归函数来添加n天到日期
add_n_days <- function(date, n) {
  # 如果n为0,则返回当前日期
  if (n == 0) {
    return(date)
  }
  
  # 否则,将日期加1天
  date <- date + days(1)
  
  # 如果日期是星期六、星期日或银行节假日,则继续递归添加1天
  if (is_weekend(date) || is_bank_holiday(date)) {
    return(add_n_days(date, n))
  }
  
  # 否则,递归添加1天,并将n减1
  return(add_n_days(date, n - 1))
}

# 示例用法
start_date <- ymd("2022-12-01")
n <- 10
result <- add_n_days(start_date, n)
print(result)

上述代码使用了R语言的lubridate库来处理日期。is_weekend函数用于判断日期是否为星期六或星期日,is_bank_holiday函数用于判断日期是否为银行节假日。add_n_days函数是一个递归函数,将日期加1天,并判断是否为星期六、星期日或银行节假日,如果是则继续递归添加1天。最后,通过指定起始日期和需要添加的天数,调用add_n_days函数来获取最终的日期。

这个函数适用于需要跳过星期六/星期日和银行节假日的日期计算,例如在业务场景中需要计算工作日、工作周期等。

腾讯云相关产品和产品介绍链接地址:

请注意,以上仅是腾讯云的一些产品示例,其他云计算品牌商也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

你需要Excel常用函数都在这里!

使用函数 EOMONTH 可以计算正好在特定月份中最后一到期到期日。 start_date 必需。开始日期。 应使用DATE 函数输入日期,或者日期作为其他公式或函数结果输入。...一个序列号,代表尝试查找那一日期。 应使用 DATE 函数输入日期,或者日期作为其他公式或函数结果输入。...return_type 返回数字 1 或省略 数字 1(星期日)到 7(星期六) 2 数字 1(星期一)到 7(星期日) 3 数字 0(星期一)到 6(星期日) 11 数字 1(星期一)到 7(星期日...start_date之前或之后不含周末及节假日天数。 days 为正值生成未来日期;为负值生成过去日期。 holidays 可选。...months为正值生成未来日期;为负值生成过去日期 例:计算日期 判断是否是周末 =IF(WEEKDAY(A2,2)>5,"周末","否") 第n个工作日日期 =WORKDAY(D2,E2,D5

4K32

MySQL 格式化日期函数 DATE_FORMAT(), FROM_UNIXTIME() UNIX_TIMESTAMP() 之间区别

MySQL 中有非常多日期函数,但是使用到比较多就是 DATE_FORMAT(), FROM_UNIXTIME() UNIX_TIMESTAMP() 这三个,DATE_FORMAT() 把日期进行格式化...星期日是一周第一,与 %X 使用 %v 周 (01-53) 星期一是一周第一,与 %x 使用 %W 星期名 %w 周 (0=星期日, 6=星期六) %X 年,其中星期日是周第一,4...位,与 %V 使用 %x 年,其中星期一是周第一,4 位,与 %v 使用 %Y 年,4 位 %y 年,2 位 FROM_UNIXTIME() FROM_UNIXTIME() 函数 MySQL...其中 unix_timestamp 参数为要转换时间戳,format 参数则规定日期/时间输出格式,他可以使用格式 DATE_FORMAT() 函数基本一致,这里不再列出。...UNIX_TIMESTAMP() UNIX_TIMESTAMP() 函数 MySQL 中存储为日期数据转换成时间戳,其语法是 UNIX_TIMESTAMP(date ) 。

71730
  • SQL常用函数

    SQL常用函数 函数介绍 函数分类 字符串函数 数值函数 日期时间函数 流程函数 其他常用函数 函数介绍 事先提供好一些功能可以直接使用 函数可以用在SELECT语句及其子句 也可以用在UPDATE...函数分类 字符串函数 数值函数 日期时间函数 流程函数 其它函数 字符串函数 concat(s1,s2...sn) 传入字符连接成一个字符串 任何字符串与null进行连接结果都是null SELECT..."abcd",2) ab cd LPAD(str,n,pad)RPAD(str,n,pad) 用字符串pad对str最左边或最右边进行填充,直接到长度为n个字符长度 LPAD("abc",7,"123...(00-53) 星期一是一周第一 %V 周 (01-53) 星期日是一周第一,与 %X 使用 %v 周 (01-53) 星期一是一周第一,与 %x 使用 %W 星期名 %w 周 (0=星期日..., 6=星期六) %X 年,其中星期日是周第一,4 位,与 %V 使用 %x 年,其中星期一是周第一,4 位,与 %v 使用 %Y 年,4 位 %y 年,2 位 DATE_ADD(date

    59440

    MySQL时间格式化date_format

    MySQL时间格式化函数date_format()用法详解 DATE_FORMAT() 函数用于以不同格式显示日期/时间数据。...语法 DATE_FORMAT(date,format) date 参数是合法日期;format 规定日期/时间输出格式。...-12) %p AM 或 PM %r 时间,12-小时(hh:mm:ss AM 或 PM) %S 秒(00-59) %s 秒(00-59) %T 时间, 24-小时 (hh:mm:ss) %U 周 (00...-53) 星期日是一周第一 %u 周 (00-53) 星期一是一周第一 %V 周 (01-53) 星期日是一周第一,与 %X 使用 %v 周 (01-53) 星期一是一周第一,与 %x...使用 %W 星期名 %w 周 (0=星期日, 6=星期六) %X 年,其中星期日是周第一,4 位,与 %V 使用 %x 年,其中星期一是周第一,4 位,与 %v 使用 %Y 年,4 位

    18710

    编程入门、进阶100例(11-15)

    自带函数进行排序,这是一种比较稳妥方法,当然也可以用冒泡排序自己实现排序 public class Sort_4numbers { public static void main(String[]...,最后有输入天数 } public static int Leap(int year) {//判断闰年函数,如果是闰年,二月份改为29 if(year%400==0 || (year%100...=0 &&year%4==0)) { return days[1]=29;//闰年中二月份日期改成29 }else return year; } } python 使用datetime...程序分析:兔子规律为数列1,1,2,3,5,8,13,21… 其实我们仔细观察可以发现,前面两个数之和等于第三个数 化成递推公式: a[n]=a[n-1]+a[n-2] 现有如下要求,输入一个数字,...代表月份,表示当前月份有多少兔子,这个题用递归很好解决,如果有不懂递归同学,可以看这篇文章—>递归讲解(C语言版) 15.2 示例 样例输入:3 样例输出:2 15.3 代码实现 注意,数据会越算越大

    44510

    Excel公式技巧104:查找任意月最后一

    假设ym分别是想要查找最后一日期月,那么: =DATE(y,m+1,0) 使用0作为日参数值,返回前一个月最后一日期。...如果不是年月,如果知道一个日期并且想找到该日期所在月最后一日期,可以使用: =EOMONTH(date, 0) 如果想要知道某月最后一个工作日日期,可以使用: =WORKDAY(DATE(y...假期列表传递给WORKDAY函数最后一个参数,例如: =WORKDAY(DATE(y, m+1, 1), -1, E1:E20) 公式中,E1:E20是包含假期日期列表单元格区域。...此外,不是所有人都将星期六星期日作为周末,如果要处理不同周末类型,例如,有人在星期二不工作,也有人工作时间是星期日至星期四,那么可以使用WORKDAY.INTL函数: =WORKDAY.INTL(...DATE(y, m+1, 1), -1, 7) 周末类型为1表示星期五星期六为周末。

    1.9K20

    SQL进阶-6-时间函数及格式化处理

    有时候我们在数据库中存储是时间戳形式,但是当我们进行数据统计分析、聚合时候,显然是不能以时间戳形式来进行,必须先转成符合实际需求格式。...内建日期函数 函数 描述 NOW() 返回当前日期时间 CURDATE() 返回当前日期 CURTIME() 返回当前时间 DATE() 提取日期日期/时间表达式日期部分 EXTRACT().../时间 DATE_FORMAT() 函数用于以不同格式显示日期/时间数据。...:mm:ss) %U 周 (00-53) 星期日是一周第一 %u 周 (00-53) 星期一是一周第一 %V 周 (01-53) 星期日是一周第一,与 %X 使用 %v 周 (01-53)...星期一是一周第一,与 %x 使用 %W 星期名 %w 周 (0=星期日, 6=星期六) %X 年,其中星期日是周第一,4 位,与 %V 使用 %x 年,其中星期一是周第一,4 位,与

    62220

    sql日期格式化「建议收藏」

    sql日期格式化转化 1. DATE_FORMAT() 函数用于以不同格式显示日期/时间数据。...00-59) %T 时间, 24-小时 (hh:mm:ss) %U 周 (00-53) 星期日是一周第一 %u 周 (00-53) 星期一是一周第一 %V 周 (01-53) 星期日是一周第一...,与 %X 使用 %v 周 (01-53) 星期一是一周第一,与 %x 使用 %W 星期名 %w 周 (0=星期日, 6=星期六) %X 年,其中星期日是周第一,4 位,与 %V...使用 %x 年,其中星期一是周第一,4 位,与 %v 使用 %Y 年,4 位 %y 年,2 位 实例 下面的脚本使用 DATE_FORMAT() 函数来显示不同格式。...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站立刻删除。

    1.4K20

    ThinkPHP中获取指定日期后工作日具体日期方法

    思路: 1、获取到查询年份内所有工作日数据数组 2、获取到查询开始日期在工作日索引 3、计算需查询日期索引 4、获得查询日期 /*创建日期类型记录表格*/ CREATE TABLE `tb_workday...return $number_wk; //自定义星期数组 //$weekArr = array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"); //...获取数字对应星期 //return $weekArr[$number_wk]; } /** * 获取指定日期段内每一日期 * @param string $startdate 开始日期 * @param...= strtotime($startdate); $etimestamp = strtotime($enddate); // 计算日期段内有多少 $days = ($etimestamp - $stimestamp...N个工作日具体日期 * @param $startdate string 计算开始日期 需包含年月日信息 * @param $days int 间隔天数 * @return mixed 成功返回 对应日期

    1.9K20

    1341. 十三号星期五(基姆拉尔森计算公式)

    每个月十三号是星期五频率是否比一周中其他几天低? 请编写一个程序,计算 N 年内每个月 13 号是星期日,星期一,星期二,星期三,星期四,星期五星期六频率。...输出格式 共一行,包含七个整数,整数之间用一个空格隔开,依次表示星期六星期日,星期一,星期二,星期三,星期四,星期五在十三号出现次数。...数据范围 1≤N≤400 输入样例: 20 输出样例: 输出样例: 36 33 34 33 35 35 34 分析 可以暴力模拟日期进行统计 利用基姆拉尔森计算公式 基姆拉尔森计算公式: w =...(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7 在公式中d表示日期日数,m表示月份数,y表示年数。...w表示星期,w取值范围是0~6,0代表星期日,1~6星期一到星期六 注意:在公式中:把1月2月看成是上一年13月14月.

    46050

    Linux下date命令常用方法小计

    -d,--date=字符串        显示指定字符串所描述时间,而非当前时间 -f,--file=日期文件        类似--date,从日期文件中按行读入时间描述 -r, --reference...=文件        显示文件指定文件最后修改时间 -R, --rfc-2822        以RFC 2822格式输出日期时间 例如:2006年8月7日,星期一 12:34:56 -0600 -...TIMESPEC=`date',`seconds',或 `ns' 表示日期时间显示精度。...下 12 小时时钟时间 (如:11:11:04 下午) %R    24 小时时间分,等价于 %H:%M %s    自UTC 时间 1970-01-01 00:00:00 以来所经过秒数...~]# date -d "- 1day"    # 减一 2018年 05月 12日 星期六 18:51:29 CST [root@Labhost1 ~]# date -d "+1 day" +%Y

    10K30

    1341. 十三号星期五(基姆拉尔森计算公式)

    每个月十三号是星期五频率是否比一周中其他几天低? 请编写一个程序,计算 N 年内每个月 13 号是星期日,星期一,星期二,星期三,星期四,星期五星期六频率。...输出格式 共一行,包含七个整数,整数之间用一个空格隔开,依次表示星期六星期日,星期一,星期二,星期三,星期四,星期五在十三号出现次数。...数据范围 1≤N≤400 输入样例: 20 输出样例: 输出样例: 36 33 34 33 35 35 34 分析 可以暴力模拟日期进行统计 利用基姆拉尔森计算公式 基姆拉尔森计算公式: w =...(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7 在公式中d表示日期日数,m表示月份数,y表示年数。...w表示星期,w取值范围是0~6,0代表星期日,1~6星期一到星期六 注意:在公式中:把1月2月看成是上一年13月14月.

    17220

    DateDiff 函数

    DateDiff 函数    返回 Variant (Long) 值,表示两个指定日期时间间隔数目。...字符串表达式,表示用来计算date1 date2 时间差时间间隔 Date1□date2       必要;Variant (Date)。计算中要用到两个日期。...指定一个星期第一常数。如果未予指定,则以星期日为第一。 firstweekofyear    可选。指定一年第一周常数。如果未予指定,则以包含 1 月 1 日星期为第一周。...不过,如果 interval 是“周”(ww),则 DateDiff 函数返回两日期“日历周”数。由计算 date1 与 date2 之间星期日个数而得。...这样就可以书写适用于不同年份程序代码。 在计算 12 月 31 日来年 1 月 1 日年份差时,DateDiff 返回 1 表示相差一个年份,虽然实际上只相差一而已。

    1.6K30

    MySQL中日期时间类型与格式化「建议收藏」

    但是如果datetime(n)中n不为0呢?...如2002,如果写为 2002-01-15,将会进行计算,插入结果为1986 ---- 【2】日期时间类型格式化 ① DATE_FORMAT( )函数 可以使用date_format( )函数进行时间转换...年 (001-366) %k 小时 (0-23) %l 小时 (1-12) %M 月名 %m 月,数值(00-12) %p AM 或 PM %r 时间,12-小时(hh:mm:ss AM 或 PM)...%S 秒(00-59) %s 秒(00-59) %T 时间, 24-小时 (hh:mm:ss) %U 周 (00-53) 星期日是一周第一 %u 周 (00-53) 星期一是一周第一 %V 周...(01-53) 星期日是一周第一,与 %X 使用 %v 周 (01-53) 星期一是一周第一,与 %x 使用 %W 星期名 %w 周 (0=星期日, 6=星期六) %X 年,其中星期日是周第一

    6.8K40

    数据分析之Pandas快速图表可视化各类操作详解

    而当我们想要进行数据可视化时候,往往需要调用很多库与函数,还需要数据转换以及大量代码处理编写。...plt.style.use('ggplot') from pylab import mpl data_text = """ 日期 小雨 中雨 大雨 阴天 多云 晴朗 湿度 风级 降水量 体感温度 节假日波动系数...()中xy关键字绘制一列与另一列对比,比如我们想要使用星期六客流量星期日客流量作对比: df_flow_7=df_flow[df_flow['日期']=='星期日'].iloc[:7,:]...df_flow_7.rename(columns={'客流量':'星期日客流量'},inplace=True) df_flow_6=df_flow[df_flow['日期']=='星期六'].iloc[...在本例中,位置由a列b列给出,而值由z列给出。这些箱子通过NumPymax函数进行聚合。

    39241

    MySql时间函数

    参数是合法日期,format规定日期/时间输出格式* 可以使用格式有 格式 描述 %a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀月中 %d 月,数值(00-31)...(00-59) %T 时间, 24-小时 (hh:mm:ss) %U 周 (00-53) 星期日是一周第一 %u 周 (00-53) 星期一是一周第一 %V 周 (01-53) 星期日是一周第一...,与 %X 使用 %v 周 (01-53) 星期一是一周第一,与 %x 使用 %W 星期名 %w 周 (0=星期日, 6=星期六) %X 年,其中星期日是周第一,4 位,与 %V 使用 %...x 年,其中星期一是周第一,4 位,与 %v 使用 %Y 年,4 位 %y 年,2 位 字符串转换为时间 str_to_date(str,format)函数作为date_format(date,...%Y %h:%i:%s'); -- 2017-06-06 06:06:30 其他 天数/时间转换函数 to_days(date):返回日期到0000-00-00天数 from_days(days

    5.2K40

    Pythonstrftime函数与calendar模块函数

    模块函数 一、strftime函数  strftime函数是pythontime模块中一个函数,它调用格式为: strftime(日期格式) 表示按指定日期格式返回当前日期,例如:  from...python时间日期格式化符号:    %y:表示两位数年份(0-99)   %Y:表示4位数年份(0-9999)   %m:表示月份(01-12)   %d:表示月份中某一(0-31)  ...) 输出: 20-11-24 08:53:19 二、calendar模块函数  calendar日历模块提供与日历相关功能,在默认情况下,日历把星期一作为周一星期日作为最后一,为了改变这种设置...- month(year,month):返回指定年份月份日历。 ...- monthrange(year,month):返回两个整数,返回第一个数代表指定年第一是星期几,返回第二个数代表所指定月份天数。

    89950
    领券