java - 计算一定范围内的频率

标签 java datetime time groovy

我有数学问题...(目前我使用手动迭代解决了它,这非常慢)...

例如,如果员工在特定日期每周(可以是每两周/每 2 周和每月)领取工资(我们称员工每周二领取工资,每月称员工在特定日期领取工资)。

我的日期范围在2009年8月10日至2009年12月31日之间,现在如何获取员工领取工资的频率?

可以使用 jodatime 来计算吗?

澄清这个问题的示例:

I have date range between Friday 14 August - Monday 14 Sept 2009 (31 days) the employee got paid on every Tuesday so he got paid on 18 & 25 August, 1 & 8 August we got 4 times payment (frequency)

另一个例子:

with the same date range Friday 14 August - Monday 14 Sept 2009 (31 days) but different pay date .. for example on Sunday
so he got paid on : 15, 22 & 29 August , 5 & 12 September ... we got 5 times payment.

相同的日期范围但不同的发薪日..结果会不同。

所以我的问题是,有没有任何公式可以解决这个问题? 目前我使用手动迭代器进行计算..这非常慢(因为范围可能是几年或几个月)

谢谢

ps:我正在使用 groovy ..欢迎任何使用 java 或 groovy 或仅算法的解决方案:)

最佳答案

付款期通常是在每月 15 日和月底,因此在这种情况下,您需要计算月份数并乘以 2,检查结束条件(如果开始时间在 15 日之前,则减去一个付款期;如果结束时间晚于月底,则减去一个支付周期)。

可以获取天、周和月的计数,但您必须添加逻辑来处理不可靠的结束条件。正如我所描述的案例所示,这可能不是一个简单的公式。

关于java - 计算一定范围内的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1253953/

相关文章:

java - 从 Linux 上 NetBeans 中的 Java 应用程序连接到 MariaDB (Mageia)

python - += 与 =+ 在 timedelta 中

python - 如何在 Python 中运行后台计时器

java - 本应为正数的负数输出

Java EE并发问题

pandas - 如何从 Pandas 的另一列映射日期时间列的年份

java - MySQL DATETIME 和 TIMESTAMP 到 java.sql.Timestamp 到 ZonedDateTime

c# - .NET QueryPerformanceCounter 打印日期时间

java - 在一定时间范围内读取数组

java - Gson.toJson Stackoverflow错误