出入库每日报表怎么做(表格出入库统计怎么弄)

健康新闻 2023-05-01 10:07健康生活www.xingbingw.cn

  出入库每日报表怎么做(表格出入库统计怎么弄),新营销网红网本栏目通过数据整理汇集了出入库每日报表怎么做(表格出入库统计怎么弄)相关信息,下面一起看看。

  这个头条号主要是关于Java中常用关键技术和常用工具的分享;以及Spring Boot春云MyBatisplus Druid MySQL Redis swagger Maven Docker等集成框架的技术分享;datax、kafka、flink等大数据处理框架的技术分享。文章会不断更新,欢迎码友关注收藏和转发!

  多关注的话,后面还会录制一些视频教程,结合图片和视频,比如图书介绍网站系统、抢购系统、大数据中间站系统等。技术是程的最爱。我们走,编码员们!

  主体

  在java开发中,几乎所有的系统都有报表统计的功能,而报表统计的参数之一就是时间段,比如时间段统计、时间段统计、周统计、趋势图统计等。所以封装了这个工具类,以避免在每个统计数据中重复计算某某日期。

  像往常一样,使用工具类中的栗子

   system . out . println( 201909 ring date= reportdateutil . gethbmonth( 201909 ));System.out.println(201909同比日期= reportdateutil . gettbmonth( 201909 ));system . out . println( 201901和201909之间的月数= reportdate util . getperiod amount( 2019 01 01 , 20190901 ,reportdate util . month));//用于显示趋势图中的日期,统计值为0时也显示。oh system . out . println( 2019 01和201909之间的日期列表= reportdate util . getperioddatelist( 2019 01 01 , 20190901 ,reportdate util . month));reportdateutil . getmonthweekgroup( 201909 )。foreach ((k,v)-{//计算九月有多少周,每周的日期是system . out . println( 201909 k week : v . tostring());});system . out . println( 201909中的自然周为= reportdate util . getmonthweeklist( 201909 ));上面使用示例打印如下

   21909环比日期=201908201909同比日期=201809201901-201909月间隔=8201901-201909日期列表=[201901,201902,201903,201904,201905,201909] 01909] 3360在2019年第1周2019年9月10日2019年9月11日2019年9月12日2019年9月13日2019年9月14日2019年9月09日第3周3360[2019年9月15日2019-09-21]2019年第4周3360[2019-09-22、2019-09-23、2019下面是一个完整的工具类,在我的项目的报表统计中经常用到。有需要的码友可以先收藏一下,说不定哪天会用到。

  导入Java . time . day ofweek;导入Java . time . local date;导入Java . time . period;导入Java . time . year month;导入Java . time . format . datetime formatter;导入Java . time . temporal . chrono unit;导入Java . time . temporal . temporal adjusts;导入Java . time . temporal . week fields;导入Java . util . ArrayList;导入Java . util . list;导入Java . util . map;导入Java . util . stream . collectors;导入Java . util . stream . stream;/ 报表日期工具类 @ author Liang-liangxn @ Date 2019/9/19 10336017 /public Class ReportDateUtil { Private Static Final datetime formatter DTF _ yyyymmdd=datetime formatter . of pattern( yymmdd );私营国营企业

  c final DateTimeFormatter DTF_YYYYMM = DateTimeFormatter.ofPattern("yyyyMM");private static final DateTimeFormatter DTF_YYYY = DateTimeFormatter.ofPattern("yyyy");private static final String PATTERN_WEEK = "yyyyw";public static final int YEAR = 1;public static final int MONTH = 2;public static final int DAY = 3;public static void main(String[] args) {System.out.println("201909环比日期="+ReportDateUtil.getHbMonth("201909"));System.out.println("201909同比日期="+ReportDateUtil.getTbMonth("201909"));System.out.println("201901-201909相隔月数="+ReportDateUtil.getPeriodAmount("20190101", "20190901", ReportDateUtil.MONTH));System.out.println("201901-201909之间的日期列表="+ReportDateUtil.getPeriodDateList("20190101", "20190901", ReportDateUtil.MONTH));ReportDateUtil.getMonthWeekGroupList("201909").forEach((k, v) - {System.out.println("201909第"+k+"周:"+v.toString());});System.out.println("201909中的自然周为="+ReportDateUtil.getMonthWeekList("201909"));}/ 获取月的第一天 @param currMonth 当前日期字符串,格式yyyyMM @return/public static String getFirstOfMonth(String currMonth) {currMonth = currMonth + "01";LocalDate d = LocalDate.parse(currMonth, DTF_YYYYMMDD);return DTF_YYYYMMDD.format(d.with(TemporalAdjusters.firstDayOfMonth()));}/ 获取月的一天 @param currMonth 当前日期字符串,格式yyyyMM @return/public static String getLastOfMonth(String currMonth) {currMonth = currMonth + "01";LocalDate d = LocalDate.parse(currMonth, DTF_YYYYMMDD);return DTF_YYYYMMDD.format(d.with(TemporalAdjusters.lastDayOfMonth()));}/ 获取年的第一天 @param currYear 当前日期字符串,格式yyyy @return/public static String getFirstOfYear(String currYear) {currYear = currYear + "0101";LocalDate d = LocalDate.parse(currYear, DTF_YYYYMMDD);return DTF_YYYYMMDD.format(d.with(TemporalAdjusters.firstDayOfYear()));}/ 获取年的一天 @param currYear 当前日期字符串,格式yyyy @return/public static String getLastOfYear(String currYear) {currYear = currYear + "0101";LocalDate d = LocalDate.parse(currYear, DTF_YYYYMMDD);return DTF_YYYYMMDD.format(d.with(TemporalAdjusters.lastDayOfYear()));}/ 计算环比月 @param currMonth 当前日期字符串,格式yyyyMM @return/public static String getHbMonth(String currMonth) {currMonth = currMonth + "01";LocalDate d = LocalDate.parse(currMonth, DTF_YYYYMMDD);return DTF_YYYYMM.format(d.minusMonths(1L));}/ 计算同比月 @param currMonth 当前日期字符串,格式yyyyMM @return/public static String getTbMonth(String currMonth) {currMonth = currMonth + "01";LocalDate d = LocalDate.parse(currMonth, DTF_YYYYMMDD);return DTF_YYYYMM.format(d.minusYears(1L));}/ 计算两个日期之间的年(或月或日)的 @param startDate 开始的日期 yyyyMMdd @param endDate 结束的日期 yyyyMMdd @param unit 年(或月或日)的标识,默认日 @return/public static List String getPeriodDateList(String startDate, String endDate, int unit) {List String l = new ArrayList ();LocalDate start = LocalDate.parse(startDate, DTF_YYYYMMDD);LocalDate end = LocalDate.parse(endDate, DTF_YYYYMMDD);Period p = Period.between(start, end);if (ReportDateUtil.YEAR == unit) {for (int i = 0; i = p.getYears(); i++) {l.add(DTF_YYYY.format(start.plusYears(i)));}} else if (ReportDateUtil.MONTH == unit) {for (int i = 0; i = p.getMonths(); i++) {l.add(DTF_YYYYMM.format(start.plusMonths(i)));}} else if (ReportDateUtil.DAY == unit) {for (int i = 0; i = p.getDays(); i++) {l.add(DTF_YYYYMMDD.format(start.plusDays(i)));}}return l;}/ 计算两个日期之间的年(或月或日)的 @param startDate 开始的日期 yyyyMMdd @param endDate 结束的日期 yyyyMMdd @param unit 年(或月或日)的标识,默认日 @return/public static List String getPeriodDateList(String startDate, String endDate, int unit, String pattern) {DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);List String l = new ArrayList ();LocalDate start = LocalDate.parse(startDate, DTF_YYYYMMDD);LocalDate end = LocalDate.parse(endDate, DTF_YYYYMMDD);Period p = Period.between(start, end);if (ReportDateUtil.YEAR == unit) {for (int i = 0; i = p.getYears(); i++) {l.add(dtf.format(start.plusYears(i)));}} else if (ReportDateUtil.MONTH == unit) {for (int i = 0; i = p.getMonths(); i++) {l.add(dtf.format(start.plusMonths(i)));}} else if (ReportDateUtil.DAY == unit) {for (int i = 0; i = p.getDays(); i++) {l.add(dtf.format(start.plusDays(i)));}}return l;}/ 计算某个月的的每一周在一年中属于第几周的 ,如2019年9月有6周(周一为一周开始),则返回结果为[201934,201935,201936,201937,201938,201939] @param currMonth 年月字符串 yyyyMM @return/public static List String getMonthWeekList(String currMonth) {return getMonthWeekList(currMonth, PATTERN_WEEK);}/ 计算某个月的的每一周在一年中属于第几周的 ,如2019年9月有6周(周一为一周开始),则返回结果为[201934,201935,201936,201937,201938,201939] @param currMonth 年月字符串 yyyyMM @return/public static List String getMonthWeekList(String currMonth, String pattern) {final DateTimeFormatter DTF_WEEK = DateTimeFormatter.ofPattern(pattern);YearMonth yearMonth = YearMonth.parse(currMonth, DTF_YYYYMM);LocalDate start = LocalDate.now().with(yearMonth).with(TemporalAdjusters.firstDayOfMonth());LocalDate end = LocalDate.now().with(yearMonth).with(TemporalAdjusters.lastDayOfMonth());if(end.isAfter(LocalDate.now())){end = LocalDate.now();}// 按周分组,设置一周的开始日期为 星期天Map String, List LocalDate collect = Stream.iterate(start, localDate - localDate.plusDays(1L)).limit(ChronoUnit.DAYS.between(start, end) + 1).collect(Collectors.groupingBy(localDate - DTF_WEEK.format(localDate)));List String l = new ArrayList ();collect.forEach((k, v) - l.add(k));return l;}/ 计算某个月的自然周数的 ,按周分组,并列出每周的天日期,例如201909月有5周,每周的日期如下 第1周:[2019-09-01, 2019-09-02, 2019-09-03, 2019-09-04, 2019-09-05, 2019-09-06, 2019-09-07] 第2周:[2019-09-08, 2019-09-09, 2019-09-10, 2019-09-11, 2019-09-12, 2019-09-13, 2019-09-14] 第3周:[2019-09-15, 2019-09-16, 2019-09-17, 2019-09-18, 2019-09-19, 2019-09-20, 2019-09-21] 第4周:[2019-09-22, 2019-09-23, 2019-09-24, 2019-09-25, 2019-09-26, 2019-09-27, 2019-09-28] 第5周:[2019-09-29, 2019-09-30] @param currMonth 年月字符串 yyyyMM @return/public static Map Integer, List LocalDate getMonthWeekGroupList(String currMonth) {YearMonth yearMonth = YearMonth.parse(currMonth, DTF_YYYYMM);LocalDate start = LocalDate.now().with(yearMonth).with(TemporalAdjusters.firstDayOfMonth());LocalDate end = LocalDate.now().with(yearMonth).with(TemporalAdjusters.lastDayOfMonth());// 按周分组,设置一周的开始日期为 星期天return Stream.iterate(start, localDate - localDate.plusDays(1L)).limit(ChronoUnit.DAYS.between(start, end) + 1).collect(Collectors.groupingBy(localDate - localDate.get(WeekFields.of(DayOfWeek.SUNDAY, 1).weekOfMonth())));}/ 计算两个日期相隔多少年(或月或日) @param startDate 开始的日期 yyyyMMdd @param endDate 结束的日期 yyyyMMdd @param unit 计算年(或月或日)的标识,默认日 @return/public static int getPeriodAmount(String startDate, String endDate, int unit) {LocalDate start = LocalDate.parse(startDate, DTF_YYYYMMDD);LocalDate end = LocalDate.parse(endDate, DTF_YYYYMMDD);Period p = Period.between(start, end);if (ReportDateUtil.YEAR == unit) {return p.getYears();} else if (ReportDateUtil.MONTH == unit) {return p.getMonths();}return p.getDays();}}

  大部分系统都是有图表统计的,有图表统计的话基本都能使用到这个工具类。这也是我在多个项目中都用到,所以封装了这个工具类。

   相关文章

  德州景点(德州市景区景点62个)

  玉兰油官方网(OLAY发布高端臻粹系列)

  驱鬼咒语(道教辟邪的神咒)

  奥运五环代表什么(奥运会五环代表着什么?)

  毅力是什么意思(没有毅力怎么办?)

  女士减肥方法(减肥方法有哪些?)

  立秋是哪一天(今年几月几号立秋?)

  路牌标志(高速公路常见的路标)

  北京限行规定(北京尾号限行轮换)

  茶杯型贵宾犬(贵宾犬多少钱一只?)

  宝路狗粮(宝路狗粮怎么样?)

  帆船残骸(美湖滨惊现神秘木船残骸)

  更多出入库每日报表怎么做(表格出入库统计怎么弄)相关信息请关注本文章,本文仅仅做为展示!

Copyright@2015-2025 www.xingbingw.cn 性病网版板所有