每周增量的问题(1 个月内创建 5 周)是否正确?

问题描述 投票:0回答:1

想象一下以下情况:服务提供商与一家公司签订了为期 1 年的合同,每周执行一次服务,每两周执行一次服务,为期 1 年。 该提供商将有一个开始和结束日期。

我提出了一个解决方案,其中 增加 +7 天或 +15 天,并且注册到最终日期 -1,也就是说,它递增注册直到达到合同截止日期。

示例:2023年8月31日至2024年8月30日

有什么问题和疑问?

创建第一个服务时,要求的开始日期为:2023-08-31。 从那时起,增加7天,直到到达最终日期,即2024-08-30。

用你的头脑和逻辑来计算 1 年有多少周:12 个月 * 4 周 = 48 周。

使用 Google:52.1786 周。

生成的结果是: 53 周。

为什么?有些月份有 5 周,因为月份的最后几天从 31、30、29、28 不等。

1 个月内记录的 5 周证据。

一个月有5周正常吗?

每个月不是正好有4周吗?

为什么谷歌给出一个结果,我的计算给出另一个结果,增量另一个?

代码示例(不是我的工作代码)

function registerService($incrementTime, $startDate, $finalDate) {
    $i = 0;
    while ($startDate <= $finalDate) {
        var_dump($startDate->format('d-m-Y'));
        $startDate = $startDate->modify($incrementTime);
        $i++;
    }
    
    var_dump($i);
}


$startDate = new DateTime('2023-08-31');

$finalDate = clone $startDate;
$finalDate = $finalDate->add(new DateInterval("P1Y"));
$finalDate->sub(new DateInterval('P1D'));

registerService('+7 days', $startDate, $finalDate);

如果您注意到 08/2024 和 05/2024 已经有 5 周了,这是正确的吗?

如果我将此合同延长至 10 年,周数可能会有很大差异......

php date datetime logic
1个回答
0
投票

工作人员在评论中解决了我的疑问。谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.