java - 给定第一季度的第一个日期,如何生成一年的自定义季度?
问题描述
如果我给出04-Mar-2019
第一季度的第一天,我想要所有季度的开始和结束日期04-Mar-2019 to 03-Mar-2020
。我怎样才能在 Java 中做到这一点?提前致谢。
Input - 1st day of 1st Quarter (04-Mar-2019)
Output -
Q1 - 04-Mar-2019 to ....
Q2 -
Q3 -
Q4 - ... to 03-Mar-2020
解决方案
java.time
LocalDate quarterStart = LocalDate.of(2019, Month.MARCH, 4);
for (int q = 1; q <= 4; q++) {
System.out.println("Q" + q + " begins on " + quarterStart);
quarterStart = quarterStart.plusMonths(3);
System.out.println(" - ends on " + quarterStart.minusDays(1));
}
这个循环打印:
Q1 begins on 2019-03-04 - ends on 2019-06-03 Q2 begins on 2019-06-04 - ends on 2019-09-03 Q3 begins on 2019-09-04 - ends on 2019-12-03 Q4 begins on 2019-12-04 - ends on 2020-03-03
出于很多目的,您不想明确结束日期。每个人都知道,每个季度都会在下一个季度开始时结束。所以考虑省略第二个System.out.println
电话,这只是多余的。
请注意,您不希望一个季度从一个月的 29、30 或 31 日开始,否则当您遇到没有那么多天的月份时,会发生奇怪的事情。
链接: Oracle 教程:解释如何使用 java.time 的日期时间。
推荐阅读
- reactjs - I got undefined data while getting it from useSelector in react
- c++ - (为什么不)在定义时初始化 struct val
- c++ - 为什么没有声明从基模板类继承的成员函数?
- python - 拆分数据集后如何绘制带有色调的pairplot
- python - 当我在 DataFrame 中使用双括号时会发生什么?
- python - 使用 youtube.search().list 时获取相同的 youtube 频道 ID
- python - 有没有办法“关闭”或降级使用英特尔数学内核库(mkl)并使用“原始”(非 mkl)Numpy 函数?
- javascript - 如何使用 discord.js 跟踪谁邀请了机器人?
- reactjs - 我可以更改 MUI 中标签的位置吗?
- jenkins - 从一个 git 存储库拉到另一个 git 存储库时排除管道文件(例如 Jenkinsfile、bitbucket-pipelines.yml)