【问题标题】:How to calculate MTD in NRF 4-5-4 calendar using current day如何使用当天计算 NRF 4-5-4 日历中的 MTD
【发布时间】:2020-12-22 08:48:27
【问题描述】:

我想知道如何编写逻辑来计算 nrf 454 日历中的 MTD。通常 MTD 很简单,如果今天是 03.09.2020 那么 MTD:从 01.09.2020 到 03.09.2020,所以它是从当月的第一天到当天的日期范围。

问题是 nrf 454 日历似乎无处不在,如果不编写大量 if/case 语句,我找不到任何可以用来创建此逻辑的模式。

这里是一个 nrf 454 日历的例子:

我的技术也很有限,因为我不能真正使用任何库。我可以使用的是 SQL 和纯 javascript。

所以我正在寻找可以复制的日历背后的逻辑,以便根据当前日期获取 MTD 日期范围,因此类似于将一天作为参数并返回 MTD 的函数。我不想使用大量 if 对其进行硬编码,除非有人在 2018-2022 年已经这样做了

【问题讨论】:

    标签: sql date calendar range date-range


    【解决方案1】:

    规则实际上非常简单.. 它们是:

    // 4 周有 28 天 // 5 周有 35 天

    // 1 一个月将有 4 周或 5 周 // 454 445 544 是 3 个月的序列,四分之一总是有 35 + 28 + 28 = 91 天 // 学期总是有 182 天 // 一年总是有 364 天

    //因为年有365天,所以每年还剩1天或2天 // 平年 1 天,闰年 2 天。

    // 剩余天数达到7天的每一年,都需要额外增加一周(一年53周)

    // 闰年可以被4和400整除,但不能被100整除。

    // 一个会计日历可以从任何公历日期开始。此类日历的一周的第一天将始终是第一个日期

    如果您在每个边界之间循环计数器,对于时间单位、周、月、季度、学期年(根据进度数组放置月份),您只需要 IF.. 一个用于月进度,另一个用于闰年。

    我自己正在做一个实现,我希望我能在一段时间内完成它

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-28
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    相关资源
    最近更新 更多