sql - 如何使用当天计算 NRF 4-5-4 日历中的 MTD
问题描述
我想知道如何编写逻辑来计算 nrf 454 日历中的 MTD。通常 MTD 很简单,如果今天是 03.09.2020 那么 MTD:从 01.09.2020 到 03.09.2020,所以它是从当月的第一天到当天的日期范围。
问题是 nrf 454 日历似乎无处不在,如果不编写大量 if/case 语句,我找不到任何可以用来创建此逻辑的模式。
我的技术也很有限,因为我不能真正使用任何库。我可以使用的是 SQL 和纯 JavaScript。
因此,我正在寻找可以复制的日历背后的逻辑,以便根据当天获取 MTD 日期范围,因此类似于将一天作为参数并返回 MTD 的函数。我不想使用大量的 ifs 对其进行硬编码,除非有人已经在 2018-2022 年间完成了它
解决方案
规则实际上非常简单.. 它们是:
// 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.. 一个用于月份进度,另一个用于闰年。
我自己在做一个实现,我希望我能在一段时间内完成
推荐阅读
- java - 如何使用 DocuSign 生成的公钥和私钥生成 .jks 文件
- c# - 如何使用我覆盖的比较方法?
- javascript - jQuery 填充字段返回 Vee 验证错误
- android - 在 android studio 中的 apk 和设计器视图中没有得到相同的结果
- laravel - Laravel Nova 工具控制器 - 获取当前用户信息
- javascript - 复选框 id 没有在 laravel 中正确分配
- javascript - 是否可以在像js这样的网页上运行swift或swift与JS交互
- jwt - 尝试登录时,从服务器端我得到了 200 个代码,但在浏览器中我得到了这个错误
- regex - Bigquery 正则表达式在多个空格后提取数字
- mysql - 从nodejs连接到mysql PHPMyAdmin时出现PROTOCOL_CONNECTION_LOST错误