周报-自定义最佳报表期

1523
0

1505121235 数据老手Lv5

发表于2020-4-2 16:37

楼主
本帖最后由 1505121235 于 2020-4-2 16:39 编辑

需求场景:周报任务,i填报平台默认周日为每周的第一天,假如希望周六为每周的第一天,从本周六 至 下周五 为一周,最佳报表期是本周,这种该如何实现呢?实现方法:
任务属性-报表期设置-最佳报表期脚本

  1. import java.util.Calendar;
  2. import java.util.Date;
  3. import com.esen.i.bbq.impl.BbqWeek;

  4. public static String getBestBbq(Date t) {
  5. Calendar d = Calendar.getInstance();
  6. d.setFirstDayOfWeek(Calendar.SATURDAY); // 星期六是这个星期的第一天,设置之后,无论这个月星晴六之前有几天,都会算作一周,从星期六开始算作第二周
  7. d.setTime(t);
  8. int yy = d.get(Calendar.YEAR); // 获取年
  9. int mm = d.get(Calendar.MONTH) - Calendar.JANUARY + 1; // 获取月
  10. int week = d.get(Calendar.WEEK_OF_MONTH); // 获取这个星期是这个月的第几周
  11. int weekMax = BbqWeek.getMaxWeekInMonth(yy, mm);
  12. int dayofWeek = d.get(Calendar.DAY_OF_WEEK) - 1; // 获取这一天是这个星期的第几天
  13. if (dayofWeek <= 5) { // 星期五及之前填写上个星期
  14.   if (week <= 1) { // 如果是第一周
  15.    if (mm <= 1) { // 如果是一月,那么填写日期应为去年12月最后一周
  16.     weekMax = BbqWeek.getMaxWeekInMonth(yy - 1, 12);
  17.     return (yy - 1) + "12" + "0" + weekMax;
  18.    } else {
  19.     weekMax = BbqWeek.getMaxWeekInMonth(yy, mm - 1);
  20.     if (mm - 1 <= 9) {
  21.      return yy + "0" + (mm - 1) + "0" + weekMax;
  22.     } else {
  23.      return yy + "" + (mm - 1) + "0" + weekMax;
  24.     }
  25.    }
  26.   } else { // 如果是第二周及之后
  27.    if (mm - 1 <= 9) {
  28.     return yy + "0" + mm + "0" + (week - 1);
  29.    } else {
  30.     return yy + "" + mm + "0" + (week - 1);
  31.    }
  32.   }
  33. } else {
  34.   if (mm <= 9) {
  35.    return yy + "0" + mm + "0" + (week - 1);
  36.   } else {
  37.    return yy + "" + mm + "0" + (week - 1);
  38.   }
  39. }
  40. }

  41. bestBbq = getBestBbq(new Date());
复制代码




最近看过此主题的会员

wxw

chestnut

chentao

13353517162

xzm

九天

esen_43K228T11K83

0个回答

只看楼主

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号