根据前台传的开始时间和结束时间计算上期和同期开始时间和结束时间

前台传的是年月日,后台使用的date类型进行接受

直接上代码

/**
 * 获取上期时间
 *
 * @param shopSalesDataVO
 */
public void getPriorTime(ShopSalesDataVO shopSalesDataVO) {
    //计算相隔时间
    Date startTime = shopSalesDataVO.getStartTime();
    Date endTime = shopSalesDataVO.getEndTime();
    long temp = endTime.getTime() - startTime.getTime();
    long days = temp / (1000 * 60 * 60 * 24);
    int day = Integer.parseInt(String.valueOf(days));
    //获取上期结束时间
    Calendar instance = Calendar.getInstance();
    instance.setTime(startTime);
    Calendar newEndTime = (Calendar) instance.clone();
    newEndTime.add(Calendar.DAY_OF_MONTH, -1);
    newEndTime.set(Calendar.HOUR_OF_DAY, 23);
    newEndTime.set(Calendar.MINUTE, 59);
    newEndTime.set(Calendar.SECOND, 59);
    //获取上期开始时间
    Calendar newStartTime = (Calendar) newEndTime.clone();
    newStartTime.add(Calendar.DAY_OF_MONTH, -day);
    newStartTime.set(Calendar.HOUR_OF_DAY, 0);
    newStartTime.set(Calendar.MINUTE, 0);
    newStartTime.set(Calendar.SECOND, 0);
    shopSalesDataVO.setStartTime(newStartTime.getTime());
    shopSalesDataVO.setEndTime(newEndTime.getTime());


}
/**
 * 设置同期日期
 *
 * @param shopSalesDataVO
 */
private void setSameTime(ShopSalesDataVO shopSalesDataVO) {
    //计算相隔时间
    Date startTime = shopSalesDataVO.getStartTime();
    Date endTime = shopSalesDataVO.getEndTime();
    long temp = endTime.getTime() - startTime.getTime();
    long days = temp / (1000 * 60 * 60 * 24);
    int day = Integer.parseInt(String.valueOf(days));
    //进行同期日期设置
    Calendar instance = Calendar.getInstance();
    instance.setTime(shopSalesDataVO.getStartTime());
    int i = instance.get(Calendar.YEAR);
    if (i % 4 == 0) {
        instance.add(Calendar.DATE, (-365 + day));
        shopSalesDataVO.setStartTime(instance.getTime());
        instance.setTime(shopSalesDataVO.getEndTime());
        instance.add(Calendar.DATE, (-365 + day));
        shopSalesDataVO.setEndTime(instance.getTime());
    } else {
        instance.add(Calendar.DATE, (-364 + day));
        shopSalesDataVO.setStartTime(instance.getTime());
        instance.setTime(shopSalesDataVO.getEndTime());
        instance.add(Calendar.DATE, (-364 + day));
        shopSalesDataVO.setEndTime(instance.getTime());
    }
}

给日期添加时分秒的方法

/**
 * 日期添加时分秒
 *
 * @param
 */
private void dateFormatMoth(ShopSalesDataVO shopSalesDataVO) {
    try {
        Calendar instance = Calendar.getInstance();
        instance.setTime(shopSalesDataVO.getStartTime());
        instance.set(Calendar.HOUR_OF_DAY, 0);
        instance.set(Calendar.MINUTE, 0);
        instance.set(Calendar.SECOND, 0);
        Date startTimeNew = instance.getTime();
        shopSalesDataVO.setStartTime(startTimeNew);
        getLastTime(shopSalesDataVO);
    } catch (Exception e) {
        logger.info("数据格式化异常", e);
    }
}

/**
 * 日期添加时分秒
 *
 * @param
 */
private void getLastTime(ShopSalesDataVO shopSalesDataVO) {
    try {
        Calendar instance = Calendar.getInstance();
        instance.setTime(shopSalesDataVO.getEndTime());
        instance.set(Calendar.HOUR_OF_DAY, 23);
        instance.set(Calendar.MINUTE, 59);
        instance.set(Calendar.SECOND, 59);
        Date endTime = instance.getTime();
        shopSalesDataVO.setEndTime(endTime);
    } catch (Exception e) {
        logger.info("数据格式化异常", e);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值