java 时间切割 年月_Java实现将时间段分割为星期、月、季度、半年以及年

给定一个时间段,如何将这个时间段按照星期、月、季度、半年以及年进行划分。

如:2020-12-18 ~ 2020-12-27这个时间段,按照星期可以分为:[2020-12-18,2020-12-20], [2020-12-21,2020-12-27]。

具体代码实现如下:

public class DateUtil {

//将时间段按星期分割

public static final List splitToWeeks(Date start, Date end) {

List result = new ArrayList<>();

result.add(Range.create(start));

Date from = new Date(start.getTime() + 7L * 24 * 3600 * 1000);

Date weekEnd = cn.hutool.core.date.DateUtil.endOfWeek(end);

while (from.compareTo(weekEnd) <= 0) {

Date dt = cn.hutool.core.date.DateUtil.beginOfWeek(from);

CollectionUtil.last(result).end(new Date(dt.getTime() - 24L * 3600 * 1000));

result.add(Range.create(dt));

from.setTime(from.getTime() + 7L * 24 * 3600 * 1000);

}

CollectionUtil.last(result).end(end);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中,如果要查询份区间数据,可以在 Service 层编写一个方法,该方法接收起始份和结束份作为参数,并返回符合条件的数据。具体的实现步骤如下: 1. 定义一个接口,例如 YearRangeService,该接口中包含一个方法,例如 findDataInYearRange(int startYear, int endYear),用于查询符合份区间条件的数据。 2. 在实现类中实现该方法,可以使用数据库查询语句,例如: ``` public List<Data> findDataInYearRange(int startYear, int endYear) { // 执行 SQL 查询语句,查询符合份区间条件的数据 String sql = "SELECT * FROM data WHERE year >= ? AND year <= ?"; List<Data> dataList = jdbcTemplate.query(sql, new Object[]{startYear, endYear}, new BeanPropertyRowMapper<>(Data.class)); return dataList; } ``` 3. 在 Controller 层调用该方法,例如: ``` @GetMapping("/data/year-range") public List<Data> findDataInYearRange(@RequestParam("startYear") int startYear, @RequestParam("endYear") int endYear) { YearRangeService yearRangeService = new YearRangeServiceImpl(); List<Data> dataList = yearRangeService.findDataInYearRange(startYear, endYear); return dataList; } ``` 4. 在前端页面中调用该接口,例如: ``` $.ajax({ url: "/data/year-range", type: "GET", data: { startYear: 2010, endYear: 2020 }, success: function(result) { // 处理返回的数据 } }); ``` 以上是一个简单的示例,具体实现方式可以根据自己的需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值