当前位置: 首页 > 知识库问答 >
问题:

javascript - 如何动态计算时间所处的范围?

陶鸿畴
2023-12-22

如何动态计算时间所处的范围?

有如下场景,计算某一天的差旅补贴时(不考虑跨天),要根据出发时间t1和到达时间t2判断补贴的金额,同时出发时间的判断标准和返回时间的判断标准现在为12时(24小时制)。

现在有如下规则:

  • t1>=(出发时间判断标准)12点,补贴为0.5,不考虑t2;
  • t1<(出发时间判断标准)12点:

    • t2>12(返回时间判断标准),补贴为1;
    • t2<=12(返回时间判断标准),补贴为0.5;
出发时间判断条件 返回时间判断条件 补贴标准
>=12 null 0.5
<12 >12 1
<12 <=12 0.5

现在要求把符号做成可配置的(大于等于小于等于),时间也做成可配置的(出发时间判断条件和返回时间判断条件不一定都是12点,也可能是12点和18点),即存在下面的情况:

  • t1>(出发时间判断标准)12点,补贴为0.5,不考虑t2;
  • t1<=(出发时间判断标准)12点的情况下:

    • t2>=18(返回时间判断标准),补贴为1;
    • t2<18(返回时间判断标准),补贴为0.5;

如何去编写代码?

想了半天,感觉没有什么头绪

共有2个答案

阎自怡
2023-12-22

https://jsrun.net/3qHKp
写了段比较时间的代码 用的moment 你可以看看

彭开畅
2023-12-22

理解你的需求了,你需要一个动态的规则系统,可以根据不同的出发时间和返回时间判断标准来计算补贴金额。

一个可能的解决方案是使用条件语句(如 if-else 或 switch-case)来根据不同的规则进行判断。以下是一个使用 Python 语言的示例:

def calculate_subsidy(t1, t2, start_time_condition, return_time_condition):    # 根据出发时间判断条件    if t1 >= start_time_condition:        subsidy = 0.5    elif t1 < start_time_condition:        # 根据返回时间判断条件        if t2 > return_time_condition:            subsidy = 1        else:            subsidy = 0.5    return subsidy# 测试print(calculate_subsidy(13, 15, 12, 18))  # 输出:1print(calculate_subsidy(9, 17, 12, 18))   # 输出:0.5

在这个示例中,calculate_subsidy 函数接受出发时间 t1、返回时间 t2、出发时间判断条件 start_time_condition 和返回时间判断条件 return_time_condition 作为参数。然后根据这些参数的值来计算补贴金额。

你可以根据实际需求调整这个函数,例如改变判断条件或补贴标准。只需要确保输入的时间和判断条件符合你的规则即可。

 类似资料:
  • 先说下需求:开始时段和结束时段是24小时按照30分钟分割成48个点的数据,数据格式如下:["00:00","00:30","01:00","01:30",.....,"23:30"],每行数据后都有新增和删除操作。 1、开始时段选择后,结束时段小于开始时段的值置灰不能选择。 2、假如:开始时段选择了 "01:00",结束时段选择了 "03:30",点击后边新增时,前边已选的数据置灰不能选择,第二条

  • 如图例,0~499999内计算为*0.3; 500000~999999内计算为0~499999部分0.3,剩余部分0.25. 范围,和费率不固定,区间数也都动态配置,请教有没有什么方便的写法?

  • null 当工作线程处理消息时,如果处理时间超过5分钟,我希望生成一条警告消息,但仍然让工作线程继续处理。 问题 我希望不断检查工作线程是否超过了5分钟的消息处理时间,如果超过了阈值时间,那么我希望记录一条错误消息,但仍然让工作线程按原样继续。 工人阶层

  • 我已经通过谷歌和堆栈溢出搜索,但我没有找到一个关于如何计算时间复杂度的清晰而直接的解释。 说代码像下面这样简单: 说一个像下面这样的循环: 这将只执行一次。 时间实际上被计算为而不是声明。

  • 我的宇宙数据库每天都会更新一些数据 我的逻辑设置为24小时循环。我的问题是,如果cosmosdb中添加了任何新数据,我无法获取过去24小时的数据。我只想用“_ts”来获取最后24小时的数据。知道怎么做吗? 尝试了这个,但没有得到所需的结果。

  • 问题内容: 我想用包含不同长度字符串的列创建一个PdfPTable。我了解到,每一列的每个单元格/列的宽度都相同(默认值),或者可以设置每一列应占用的空间比例。 但是,我希望列的宽度可以根据需要而定,但不要任何宽度都取决于插入的数据。假设表格很容易放在页面上(不间断!)。当然,我可以手动浏览所有数据并计算每列的最大字符串长度,并相应地设置表的属性,但是我想知道itext本身是否已经提供了这样一个通