专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java修炼终极指南:68. 计算给定日期的季度

temp10 2024-10-12 12:01:51 java教程 16 ℃ 0 评论


一年有4个季度(通常表示为Q1、Q2、Q3和Q4),每个季度有3个月。如果我们认为一月是0,二月是1,……,十二月是11,那么我们可以观察到一月/3=0,二月/3=0,三月/3=0,因此0可以代表Q1。接下来,3/3=1,4/3=1,5/3=1,所以1可以代表Q2。基于同样的逻辑,6/3=2,7/3=2,8/3=2,所以2可以代表Q3。最后,9/3=3,10/3=3,11/3=3,所以3代表Q4。

Java修炼终极指南:68. 计算给定日期的季度

根据这个陈述和Calendar API,我们可以得到以下代码:

public static String quarter(Date date) {
  String[] quarters = {"Q1", "Q2", "Q3", "Q4"};
  Calendar calendar = Calendar.getInstance();
  calendar.setTime(date);
  int quarter = calendar.get(Calendar.MONTH) / 3;
  return quarters[quarter];
}


但是,从JDK 8开始,我们可以依赖于java.time.temporal.IsoFields。这个类包含遵循ISO-8601标准日历系统的字段(和单位)。在这些项目中,我们有基于周的年份,以及我们感兴趣的,一年中的季度。这次,让我们返回季度作为整数:

public static int quarter(Date date) {
  LocalDate localDate = date.toInstant()
    .atZone(ZoneId.systemDefault()).toLocalDate();
  return localDate.get(IsoFields.QUARTER_OF_YEAR);
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表