永洪社区

标题: 年周yyyy-ww计算结果不对 [打印本页]

作者: mu婉清    时间: 2021-12-31 11:09
标题: 年周yyyy-ww计算结果不对
本帖最后由 永洪tech-Emily 于 2021-12-31 13:12 编辑

问题:
日期2021-12-30,使用yyyy-ww转成年周,但是显示是2021-01周,正常应该是2021-53周。

原因:
java中的周计算有个规则,当年的最后几天可能会被算入下一年的第一周
2021-12-30与2022-01-01属于同一周,这周是2022-01周,因此对2021-12-30做yyyy-ww转换的时候,yyyy是2021,但ww是01.

解决办法:
1,将yyyy-ww改成YYYY-ww,2021-12-30就会被转换成“2022-01周”
2,新建计算列做判断,当yyyy+1=YYYY时,取周为该日期上周+1周,例如:
新建计算列:
var a=formatDate(col['列'],'YYYY')
var b=formatDate(col['列'],'yyyy')
if(parseInt(a)-1==parseInt(b))
{
var d_week=parseInt(formatDate(dateAdd(col['列'],'weekofyear',-1),'ww'))+1
var d_end=b+'-'+d_week+'周'
}
else{
var d_end=formatDate(d,'yyyy-ww周')
}
d_end

展示结果如下
(, 下载次数: 119)