javascript - 创建自定义年份,不同于日历年?JS/QML
问题描述
我正在尝试将一年中的“第一天”和“最后一天”(通常是 01/01/yyyy - 31/12/yyyy)更改为我自己定义的日期,即:
第一天: 01/04/yyyy(4 月 1 日)
最后一天: 31/03/yyyy(3 月 31 日)
我在这里找到了类似的问题/答案:
答案是:
var todayDate = new Date(); //18/05/19
var FYFirst = todayDate.getFullYear(); //2019
if (todayDate.getMonth() < 3) { // earlier than april
FYFirst -= 1;
}
var FYLast = FYFirst + 1;
但是当我的用户存储从津贴中取出的日期时,我需要将其向前/向后延长至少 2 年,所以上面的代码将是currYear (01/04/2019 - 31/03/2020)
.
还会有(目前存在,但需要动态):
上一页上一页: 01/04/17 - 31/03/18
上一页: 01/04/18 - 31/03/19
下一年: 01/04/20 - 31/03/21下一年
: 01/04/21 - 31/03/22
其中日期取自currYear,nextYear
保存日期所在年份的津贴。
在此示例中,假设用户每年的“津贴”为 40,并且每天计为 1,因此在保存日期时会从津贴中扣除 1。我有所有的数学工作,但需要一些方法让应用程序知道它是否从今年的“津贴”或明年等中扣除,这是写入并存储到数据库中 - 所有的数学目前正在工作但无限期滚动,没有任何年终!
我的问题是
我将如何扩展上述内容,以考虑到我的用户存储日期时所需的多年跨度?我正在Felgo
使用 QML 构建我的应用程序!
解决方案
您的年份范围似乎是次年的 4 月 1 日至 3 月 31 日。您可以将 2019 年 4 月 1 日至 2020 年 3 月 31 日称为“2019”。您可以创建一个简单的函数,以便从 1 月 1 日到 3 月 31 日的任何日期都属于上一年,例如:
function getMySpecialYear(date) {
var yr = date.getFullYear();
var fyStart = new Date(yr, 3, 1);
return date < fyStart? yr - 1 : yr;
}
[new Date(2019,0,1), // 1 Jan 2019 -> 2018
new Date(2019,5,1) // 1 Jun 2019 -> 2019
].forEach(date => console.log(date + ' - ' + getMySpecialYear(date)));
然后,您可以将特定范围/年份的天数相加,并查看总数是否小于或大于该范围/年份的允许值。
有些地方有类似的问题,财政年度从 7 月 1 日到 6 月 30 日,它们通常被称为“FY 2019/20”之类的东西。
推荐阅读
- python - 迭代工具 Python
- python - 熊猫连接上一个当前和下一个文本
- python - 如何在 FiPy 中编写具有自变量的方程项?
- r - 使用 R veriosn 3.6.1 以 csv 格式导入数字数据的问题
- android - 在 Android\Sdk 中找不到带有哈希字符串“android-28”的目标
- rust - 如何给 impl trait 起别名?
- django - 如何在不编写 if else 语句的情况下排除 AND 查询集中的空值
- flutter - 如何使用 Flutter 小部件测试器找到“选定的”ListTile?
- .net-core - BaseController 处理客户端工厂
- python - Flask 邮件附件错误 - 'dict' 对象没有属性 'startswith'