zoukankan      html  css  js  c++  java
  • 获取前一周期日期

    // 同环比获取上一阶段日期处理
    export const getNextDate = (date: any, type?: any) => {
    if (!date) return;
    if (date.length === 8) {
     let newDate = date.slice(0,4)+'-'+date.slice(4);
    newDate = newDate.slice(0,7)+'-'+newDate.slice(7);
      const dd = new Date(newDate);
    let day = 0;
    if (type === 'WOW') {
    day = -7;
    } else if (type === 'DOD') {
    day = -1;
    }
      dd.setDate(dd.getDate() + day);
      let y = dd.getFullYear();
      let m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
      const d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
    if (type === 'MOM') {
     m = Number(m) - 1;
    if(m === 0) {
    m = 12;
    y = y - 1;
    }
    } else if (type === 'QOQ') {
     m = Number(m) - 3;
    if(m <= 0) {
    m = 12 + m;
    y = y - 1;
    }
    } else if (type === 'YOY') {
    y = y - 1;
    }
    return y + "-" + m + "-" + d;
    } else if (date.length === 6) {
    let y = date.slice(0,4);
    let z = date.slice(4);
    if (type === 'WOW') {
    z = Number(z) - 1;
    if(z === 0) {
    z=53;
    y = Number(y)-1;
    }
    } else if (type === 'YOY') {
    y = Number(y)-1;
    } else if (type === 'MOM') {
    z = Number(z) - 1;
    if(z === 0) {
    z = 12;
    y = Number(y)-1;
    }
    } else if (type === 'QOQ') {
    z = Number(z) - 1;
    if(z === 0) {
    z = 4;
    y = Number(y)-1;
    }
    }
    if (z < 10) {
    z = '0'+ z;
    }
    return `${y}${z}`
    }
    return `${Number(date)-1}`
    };
  • 相关阅读:
    .NET Core 服务调用 RPC
    从Docker 到 Kubernatetes 的跃迁之路
    同步异步-多线程梳理
    Net的微服务选型之路
    Visual Studio 2019安装SSIS
    HL7协议的基本语法
    vue学习笔记
    开发常用的部分sql语句总结
    VSPD虚拟串口来调试通信接口程序
    SSRS报表工具之合并行数据
  • 原文地址:https://www.cnblogs.com/lipu12281/p/14251168.html
Copyright © 2011-2022 走看看