You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言循环列表计算配送周期天数的技术求助

配送排班周期天数计算方案(R语言)

核心思路

利用星期的循环特性,通过索引计算起始配送日到下一个配送日之间的周期天数,无需硬编码或复杂循环。

步骤实现

  1. 定义星期向量(替换原列表,向量更易索引操作):
DaysOfWeek <- c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")
  1. 编写计算函数:
calculate_cycle_days <- function(start_day, next_day, days_vec = DaysOfWeek) {
  # 获取起始日和下一个配送日的索引
  start_idx <- which(days_vec == start_day)
  next_idx <- which(days_vec == next_day)
  
  # 分情况计算天数
  if (start_idx == next_idx) {
    return(7)  # 起始日与下一个配送日为同一天,对应整周
  } else if (start_idx < next_idx) {
    return(next_idx - start_idx)  # 同周内的天数差
  } else {
    return((length(days_vec) - start_idx) + next_idx)  # 跨周的天数总和
  }
}
  1. 测试示例:
  • 计算从周五到下一个配送日周二的周期天数:
calculate_cycle_days("Friday", "Tuesday")
# 输出:4(对应周五、周六、周日、周一,共4个配送日)
  • 计算从周二到下一个配送日周五的周期天数:
calculate_cycle_days("Tuesday", "Friday")
# 输出:3(对应周二、周三、周四,共3个配送日)

说明

  • 函数默认使用定义好的DaysOfWeek向量,也可传入自定义顺序的星期向量适配不同需求
  • 计算逻辑自动处理跨周场景,无需手动判断周末边界

内容的提问来源于stack exchange,提问作者Sven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 19:22:16