需要多循环效率的帮助

时间:2010-07-22 00:52:11

标签: c# java vba

我正在编写一个例行程序,计算出某个月内某些利益的应计利润以及这些应计利息的支付日期。

有一些事情要循环,我想知道如何提高循环结构的效率(或使用替代方案)。

当我获得某种利益时,我必须弄清楚它是简单还是复杂。简单意味着您每14天获得一次x。复杂意味着一些事情:

  • 您每x天获得一次付款,可以定义x。
  • 金额取决于你是否每天工作(所以我需要抬头查看这个人是否在周末工作,他们是否正在休假)
  • 福利可以在一年中的某些时段暂停(例如学校假期,仅在4月1日至8月23日期间)

我正在寻找某些地方的模式,无论是在书中还是在网站上。我不是要求任何人为我设计它。

我尝试过一些快捷方式:

  1. 我已经假期并将日期序列化为字符串,然后只使用标准的InString函数来检查数据是否在那里
  2. 创建数组我可以检查(在某些情况下,InString似乎工作得更快),而不是循环记录集
  3. 使用简单的SQL语句(来自tblHoliday的SELECT ixHoliday,其中tblHoliday.dtHoliday = dtInspected)
  4. 但是,我使用的表创建了个人假日(它读取了另一个系统)。这有助于今年的预订假期,但对复活节等没有帮助(除非我让他们进入 - 我有算法)。问题出现在未来几年,在那里我做了简化的假设。

    这用于准备5年预测。

    我很快就会在设计中使用一个分析器,但是想知道有关构建这些模式的任何资源。

1 个答案:

答案 0 :(得分:3)

我无法对你的算法的其余部分发表评论,因为它听起来非常特定于域名,但肯定是这个

  

我已经假期并将日期序列化为字符串,然后只使用标准的InString函数来检查数据是否在那里

不是测试集合是否包含给定值的日期的最快/最简单/最有效的方法。

无论您使用的语言是什么(并且未指定),任何现代语言/库(当然都是C#和Java)都有容器对象和结构,它们提供操作来测试某个对象是否包含在某些列表中t转换为序列化和字符串解析。