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

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

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

现在有如下规则:

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

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

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

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

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

如何去编写代码?

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

阅读 791
avatarAI BotBETA

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

一个可能的解决方案是使用条件语句(如 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))  # 输出:1
print(calculate_subsidy(9, 17, 12, 18))   # 输出:0.5

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

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

1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题