@java计算同比和环比

同比和环比的概念

同比和环比的区别:
同比是不连续的两期数据做对比;环比是两期连续数据做对比。计算方式:环比增长率=(本期数-上期数)/上期数×100%;同比增长率=(本期数-同期数)÷同期数×100%;同比更加侧重反映长期的大趋势,环比会突出显示数据的短期趋势。

计算基准

根据计算的基准不同,可分为周环比,月环比,日环比,周同比,月同比,日同比等,代入到上面的公式,以月为例,
月环比增长率=(本月数-上月数)/上月数
月同比增长率=(本月数-去年本月数)/ 去年本月数

java 通用方法

因此需要根据基准单位的不同去向前推对应单位的日期。
本方法依次传入现在的日期,前推的数量,前推的单位,执行后将计算的数据以Data类型返回

/*** 获得指定日期之前一段时期的日期。例如某日期之前3天的日期等。** @param origDate*            基准日期* @param amount*            时间数量* @param timeUnit*            时间单位,如年、月、日等。用Calendar中的常量代表,*            Calendar.YEAR-年*            Calendar.MONTH-月*            Calendar.DATE-日* @return {@link Date}*/public static Date dateBefore(Date origDate, int amount, int timeUnit) {Calendar calendar = Calendar.getInstance();calendar.add(timeUnit, -amount);return calendar.getTime();}

可能会有向后推算日期的场景,所以在此将负号变成正,即完成了对此方法的更改。

/*** 获得指定日期之后一段时期的日期。例如某日期之后3天的日期等。** @param origDate*            基准日期* @param amount*            时间数量* @param timeUnit*            时间单位,如年、月、日等。用Calendar中的常量代表,*            Calendar.YEAR-年*            Calendar.MONTH-月*            Calendar.DATE-日* @return {@link Date}*/public static Date dateAfter(Date origDate, int amount, int timeUnit) {Calendar calendar = Calendar.getInstance();calendar.add(timeUnit, amount);return calendar.getTime();}

代码验证实例。

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;public class DataCount {/*** 获得指定日期之前一段时期的日期。例如某日期之前3天的日期等。** @param origDate*            基准日期* @param amount*            时间数量* @param timeUnit*            时间单位,如年、月、日等。用Calendar中的常量代表,*            Calendar.YEAR-年*            Calendar.MONTH-月*            Calendar.DATE-日* @return {@link Date}*/public static Date dateBefore(Date origDate, int amount, int timeUnit) {Calendar calendar = Calendar.getInstance();calendar.add(timeUnit, -amount);return calendar.getTime();}/*** 获得指定日期之后一段时期的日期。例如某日期之后3天的日期等。** @param origDate*            基准日期* @param amount*            时间数量* @param timeUnit*            时间单位,如年、月、日等。用Calendar中的常量代表,*            Calendar.YEAR-年*            Calendar.MONTH-月*            Calendar.DATE-日* @return {@link Date}*/public static Date dateAfter(Date origDate, int amount, int timeUnit) {Calendar calendar = Calendar.getInstance();calendar.add(timeUnit, amount);return calendar.getTime();}public static void main(String[] args) {DateFormat df1 = DateFormat.getDateInstance();//日期格式,精确到日System.out.println("计算前置日期前");Date date1 = new Date();DateFormat YEAR_FORMAT = new SimpleDateFormat("yyyy");DateFormat MONTH_FORMAT = new SimpleDateFormat("MM");DateFormat Day_FORMAT = new SimpleDateFormat("dd");System.out.println(YEAR_FORMAT.format(date1));System.out.println(MONTH_FORMAT.format(date1));System.out.println(Day_FORMAT.format(date1));System.out.println(df1.format(date1));System.out.println(date1);System.out.println("计算前置日期后");Date date = dateBefore(date1, 1, Calendar.DATE);System.out.println(YEAR_FORMAT.format(date));System.out.println(MONTH_FORMAT.format(date));System.out.println(Day_FORMAT.format(date));System.out.println(date);System.out.println(df1.format(date));System.out.println("计算后置日期后");Date dateAfter = dateAfter(date1, 1, Calendar.DATE);System.out.println(YEAR_FORMAT.format(dateAfter));System.out.println(MONTH_FORMAT.format(dateAfter));System.out.println(Day_FORMAT.format(dateAfter));System.out.println(dateAfter);System.out.println(df1.format(dateAfter));}
}

输出结果截图

java计算同比和环比相关推荐

  1. Power BI中计算同比、环比

    财务需求中经常要求计算数据的同比.环比,下面介绍如何在Power BI 中创建用来计算同比和环比的度量值(SSAS模型中同理)... 现金表中有金额,时间(时间需要连续的年月日格式),计算同比.环比. ...

  2. 计算同比、环比的一些常识性问题

    什么鬼 我想在这篇文章中说明的是在计算同比.环比的值的时候,会遇到的一些问题.这些问题如下: 环比月天数不一致 同比周数不一致 可比&全同比 在这一小节里面,我先不说上面的四个问题,我想说的是 ...

  3. 计算同比和环比的区别_【数据说第三期】同比和环比数据分析时,有哪些需要注意的点?...

    [写在前面] 上期探讨了数据分析与数据增长的核心逻辑,了解了数据分析和数据增长的逻辑和大体工作流程等.([数据说第二期]数据分析与数据增长核心逻辑杂谈)'' 本期先从数据分析的一环开始,针对" ...

  4. ORACLE——一条SQL计算同比、环比

    按照月份进行计算: SELECT D.YEARMONTH, D.VALUE, TO_CHAR(NVL(ROUND(DECODE(D.monthOnMonth,0,NULL,(D.VALUE - D.m ...

  5. mysql的时间日期函数总结。案例应用:计算同比、环比、累计同比,股票类延伸。---- 前海最靓的仔,陈宇超

    第一部分,基础:常见日期(date)和时间(time)函数的使用 1.获取当前日期时间 select now()        [2019-06-22 22:22:23 ] 返回当前日期时间,受set ...

  6. Oracle如何根据一个日期计算同比环比的日期

    iamlaosong文 在写统计查询的SQL语句时,经常会碰到根据一个查询日期推演其它日期的问题,如同比.环比等. 1.字符串转换成日期:to_date('2016-6-16', 'yyyy-mm-d ...

  7. Tableau同环比分析系列(一)--基础同比、环比

    同环比分析是我们在数据分析中不可避免的分析方法,各业务数据的同比变化.环比变化是反映业务的重要指标.我们接下来将通过几篇文章介绍如何使用Tableau进行数据同比.环比的分析与处理. 一.同比.环比的 ...

  8. java时间计算同比环比周的问题

    问题描述: 在业务中会有传不同日期格式, 1.有天(2020-02-29),周(2020-03第三周),月(2020-02二月份), 2.同时需要计算对应的去年同比时间和环比(就是上一个时间段,周的2 ...

  9. 【Mysql实战】使用存储过程和计算同比环比

    背景 同环比,是基本的数据分析方法.在各类调研表中屡见不鲜,如果人工向前追溯统计数据,可想而知工作量是非常大的. 标题复制10行,并且每行大于10个字符[源码解析]SpringBoot接口参数[Mys ...

  10. 用MDX进行同比及环比计算

    同比和环比计算是企业应用.电子商务应用中常用的计算方法,也是常用的数据分析手段.写这篇文章也是因为最近在学习MDX相关的一些计算方法的同时回想到原来我在项目中使用过的一些类似的,利用SQL来完成的统计 ...

最新文章

  1. Opengl-光照-基本光照-材质(有了材质一个物体才算是完整了)
  2. TFS 2015 敏捷开发实践 – 看板的使用
  3. OpenGL超级宝典笔记——遮挡查询 [转]
  4. 利用jqueryRotare实现抽奖转盘
  5. js底部广告飘窗代码
  6. android 触摸屏(TP)问题现象分析和解决方法
  7. 自动聊天机器人项目班
  8. 分析按键序列以执行不同功能。但又从中抽象出来一个,暂时不知道还能用作别的不。...
  9. 项目管理学习总结(16)——如何突破技术管理
  10. python中RGB缓冲区红蓝颠倒的解决办法
  11. c语言课后题第一章答案,C语言教材课后习题(含答案)
  12. gb28181简单实现sip信令服务器(java版基于springboot):三、sip摄像头注册(代码实现)
  13. 1999.00 php,CBA20周年之1999-00赛季-前卫先合并后解散 八一5连冠
  14. 能够关闭并退出计算机程序的是,电脑强制关闭程序按哪三个键 可按Alt+F4关闭当前页面...
  15. [M1]Daily Scum 10.9
  16. HTTPS(ssl)
  17. 树的结点?结点的度?
  18. 软件测试是干什么的 发展前景怎样?
  19. 钢铁表面缺陷检测图像数据集(1800张图像,voc标签)
  20. 昨天,2017年诺贝尔物理学奖正式揭晓!

热门文章

  1. Unity 抗锯齿方案梳理
  2. 免费全景摄影制作教程 - 摄影基础知识
  3. bt服务器搭建 linux_linux系统架设BT服务器的详细教程
  4. Python绘制云图
  5. Mybatis对Double类型的字符串进行范围查询
  6. Tecplot 自定义色谱颜色
  7. 调试svo 中遇到的问题
  8. Tomcat环境配置 以及报错500的问题
  9. Linux 多线程同步之哲学家用餐问题分析
  10. MSP430F149最小系统原理图与芯片封装分享