永洪社区

标题: 日期显示交易日 [打印本页]

作者: yhdata-000    时间: 2021-12-28 15:34
标题: 日期显示交易日
本帖最后由 yhdata-000 于 2021-12-29 09:44 编辑

结束日期一般设置当天或昨天,然后开始日期 设置成向前退10个工作日【周六、周日和我国法定节假日都不算在工作日内】大佬们 组件筛选 应该怎么设置

作者: 环环    时间: 2021-12-28 15:40
有一个这个函数,返回的是两个日期之间的工作日,把返回的值赋值给参数,做过滤即可
返回参数开始日期和结束日期之间完整的工作日(不包括周末和专门指定的假期)数值。
参数1:起始日期。
参数2:结束日期。
参数3:可选。指定节假日,表示不在工作日历中的一个或多个日期所构成的可选区域,法定假日以及其他非法定假日。
例如:
var date1 = new Date(2013, 0, 30);
var date2 = new Date(2013, 2, 1);
var a = networkdays(date2, date1, null);
作者: yhdata-000    时间: 2021-12-28 15:52
永洪tech-秀秀 发表于 2021-12-28 15:40
有一个这个函数,返回的是两个日期之间的工作日,把返回的值赋值给参数,做过滤即可
返回参数开始日期和结 ...

我们这边想要的是关于文本传参组件或者日期过滤组件的设置,对日期进行默认值设置
作者: 环环    时间: 2021-12-28 15:55
文本参数只能设置一个默认值吧,日期过滤最多也只能选择两个,还是说根据这两个选择的值,返回默认时间段的工作日呢
作者: yhdata-000    时间: 2021-12-28 15:58
永洪tech-秀秀 发表于 2021-12-28 15:55
文本参数只能设置一个默认值吧,日期过滤最多也只能选择两个,还是说根据这两个选择的值,返回默认时间段的 ...

大概是这个意思  文本参数 (开始日期  结束日期) 我设置默认显示7天的数据,但是这7天里不包括节假日(上周四到本周五这样的7天)
作者: 环环    时间: 2021-12-28 17:05
可以用这个脚本,文本参数1是开始时间,文本参数2是结束时间,获取两个日期之间的工作日赋值给了参数t,过滤的时候用参数t过滤就行,日期是其中一个参数t
var a=networkdays(param['文本参数1'],param['文本参数2'])
var arr=[]
for(var i=1;i<=a;i++){
arr[i-1]=workday(param['文本参数1'],i)
}
param['t']=arr
作者: yhdata-000    时间: 2021-12-29 09:29
永洪tech-秀秀 发表于 2021-12-28 17:05
可以用这个脚本,文本参数1是开始时间,文本参数2是结束时间,获取两个日期之间的工作日赋值给了参数t,过 ...

这个顺序反了,我们想要设置的是开始和结束日期,默认10个工作日,您这个是设置好开始和结束日期,算出有多少工作日吧
作者: 环环    时间: 2021-12-29 09:35
开始日期和结束日期不应该是你们定的吗,不然怎么确定是哪几天的工作日呢
作者: yhdata-000    时间: 2021-12-29 09:37
本帖最后由 yhdata-000 于 2021-12-29 09:46 编辑
永洪tech-秀秀 发表于 2021-12-29 09:35
开始日期和结束日期不应该是你们定的吗,不然怎么确定是哪几天的工作日呢 ...

一般是当天向前推10个工作日这种
作者: 环环    时间: 2021-12-29 09:50
那就以当天来计算咯?只用求开始和结束的工作日就行吗,需要赋值给参数组件吗,如果需要用的是什么参数组件呢
作者: yhdata-000    时间: 2021-12-29 10:05
永洪tech-秀秀 发表于 2021-12-29 09:50
那就以当天来计算咯?只用求开始和结束的工作日就行吗,需要赋值给参数组件吗,如果需要用的是什么参数组件 ...

是的,只求开始和结束时间(文本参数,结束日期是当天,如果当天是周末节假日 ,那结束日期是最后一个工作日。开始日期是结束日期向前10个工作日-周末和节假日不算在内),不用赋值
作者: 环环    时间: 2021-12-29 10:23
那可以用这个脚本,除开周末和法定节假日,以今天开始计算,t1是结束工作日,t2是开始工作日
var a=networkdays(today(),today())
if(a!=0){
param['t1']=today()
param['t2']=workday(today(),-9)
}else{
param['t1']=workday(today(),-1)
param['t2']=workday(today(),-10)
}


作者: yhdata-000    时间: 2021-12-29 16:31
本帖最后由 yhdata-000 于 2021-12-29 16:33 编辑
永洪tech-秀秀 发表于 2021-12-29 10:23
那可以用这个脚本,除开周末和法定节假日,以今天开始计算,t1是结束工作日,t2是开始工作日
var a=network ...

这个,好像不是文本参数组件?传参组件里的文本传参
作者: 环环    时间: 2021-12-29 16:35
和文本参数组件有什么关系呢,你不是说从今天开始计算就行,不需要赋值吗
作者: yhdata_v5YKgYap    时间: 2021-12-29 16:54
永洪tech-秀秀 发表于 2021-12-29 10:23
那可以用这个脚本,除开周末和法定节假日,以今天开始计算,t1是结束工作日,t2是开始工作日
var a=network ...

我理解的你这个意思   a 是判断今天是否是工作日,若是工作日  a =1,  若是节假日或者周末  a = 0,  我试了下 用networkdays()  这个脚本,无论是周末、节假日 还是正常工作日,  a = 1,不知道我理解的是否对
作者: 环环    时间: 2021-12-29 16:58
就是工作日的时候才会等于1,其他的为0,我试了是可以正常的哦。你的脚本和现象截个图看下呢
作者: yhdata_v5YKgYap    时间: 2021-12-29 17:09
永洪tech-秀秀 发表于 2021-12-29 16:58
就是工作日的时候才会等于1,其他的为0,我试了是可以正常的哦。你的脚本和现象截个图看下呢 ...

var  date1 = new Date(2021,12,25)
var  date2 = new Date(2021,12,25)
a = networkdays(date1,date2);
文本1.data = a

我用的这个测试的,25号上周六
作者: yhdata-000    时间: 2021-12-29 17:09
永洪tech-秀秀 发表于 2021-12-29 16:58
就是工作日的时候才会等于1,其他的为0,我试了是可以正常的哦。你的脚本和现象截个图看下呢 ...

这个能麻烦你 打个包发一下看看吗,我们这边再试试
作者: 环环    时间: 2021-12-29 17:19
初始化日期不要用new Date(),new Date()是从0月开始算的,new Date(2021,12,25)结果其实是2022-01-26。
初始化一个日期可以用date,date(2021,12,25),换这个试试呢
作者: yhdata_v5YKgYap    时间: 2021-12-29 17:41
本帖最后由 yhdata_v5YKgYap 于 2021-12-29 17:42 编辑
永洪tech-秀秀 发表于 2021-12-29 17:19
初始化日期不要用new Date(),new Date()是从0月开始算的,new Date(2021,12,25)结果其实是2022-01-26。
初 ...


date 可以,现在开始日期和结束日期默认中间60个工作日,这样出来的是到10月5号,这个是节假日,还是有问题,你看下我的脚本(结束日期默认前一个工作日,开始日期是结束日期往前推60个工作日)


作者: 环环    时间: 2021-12-29 18:49
本帖最后由 永洪tech-秀秀 于 2021-12-29 18:54 编辑

workday函数的第3个参数是写日期的,排除掉不需要计算的即可。你们的字段里有个字段,是判断是否是节假日的对吗。可以用一个列表参数组件,绑定日期字段,加过滤器过滤掉是节假日的数据。然后脚本里的那个函数,第三个null的那个参数,就改成这个列表参数。如果不想显示这个参数组件,可以用脚本 组件.width=0 隐藏掉
作者: yhdata_v5YKgYap    时间: 2021-12-30 08:54
本帖最后由 yhdata_v5YKgYap 于 2021-12-30 09:25 编辑
永洪tech-秀秀 发表于 2021-12-29 18:49
workday函数的第3个参数是写日期的,排除掉不需要计算的即可。你们的字段里有个字段,是判断是否是节假日的 ...

按照您这个 应该是可以的,我们后面试下,谢谢

作者: 环环    时间: 2021-12-30 09:51
嗯嗯  不客气




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