永洪社区

标题: 如何获取去年第40周的周日、周一的日期? [打印本页]

作者: ssg    时间: 2022-9-25 09:11
标题: 如何获取去年第40周的周日、周一的日期?
为什么是40周:var a=weeknum(today());debug(a)                         当前日期为本年的第40周,需要获取到去年的第a周的日期(开始日期和结束日期,第一天目前默认是永洪设置的周日,还需要将每周第一天设置成周一);
需求如下:1、请问如何获取到去年第a周的日期范围?
                 2、如何将每周的第一天(周日)设置为周一?



作者: yhdata_yzm    时间: 2022-9-25 09:11
ssg 发表于 2022-9-25 21:46
请问永洪如何将每周第一天默认是为周日设置为周一呀

https://www.yonghongtech.com/hel ... F%E5%87%BD%E6%95%B0参考start_of_week
作者: yhdata_N2sqFhjv    时间: 2022-9-25 09:36
function getYearWeek(dateString){
    var da =dateString;//日期格式2015-12-30
    //当前日期
    var date1 = new Date(da.substring(0,4), parseInt(da.substring(5,7)) - 1, da.substring(8,10));
    //1月1号
    var date2 = new Date(da.substring(0,4), 0, 1);
    //获取1月1号星期(以周一为第一天,0周一~6周日)
    var dateWeekNum=date2.getDay()-1;
    if(dateWeekNum<0){dateWeekNum=6;}
    if(dateWeekNum<4){
        //前移日期
        date2.setDate(date2.getDate()-dateWeekNum);
    }else{
        //后移日期
        date2.setDate(date2.getDate()+7-dateWeekNum);
    }
    var d = Math.round((date1.valueOf() - date2.valueOf()) / 86400000);
    if(d<0){
        var date3 = (date1.getFullYear()-1)+"-12-31";
        return getYearWeek(date3);
    }else{
        //得到年数周数
        var year=date1.getFullYear();
        var week=Math.ceil((d+1 )/ 7);
        return year+"年第"+week+"周";
    }
}
作者: ssg    时间: 2022-9-25 21:46
请问永洪如何将每周第一天默认是为周日设置为周一呀
作者: 永洪tech-joey    时间: 2022-9-26 17:29
本帖最后由 永洪tech-joey 于 2022-9-29 15:37 编辑

// 去年同周的使用:替换对应的『周筛选』参数即可
// 去年同周中的任意一天:先获取去年1月1号,然后加上对应周数-1
tmp = dateAdd(date(year(param["周筛选"])-1,1,1),"weekofyear",weeknum(param["周筛选"])-1)
// 获取去年同周的第一天
start_day = dateAdd(tmp,"dayofyear",-weekday(tmp)+1)
param["去年同周_开始日期"] = formatDate(start_day,'yyyy-MM-dd')
param["去年同周_结束日期"] = formatDate(dateAdd(start_day,"dayofyear",6),'yyyy-MM-dd')
作者: 永洪tech-joey    时间: 2022-9-26 17:31
ssg 发表于 2022-9-25 21:46
请问永洪如何将每周第一天默认是为周日设置为周一呀

在bi.properties中添加以下配置
monday.first.day.of.week=true




欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4