` //获取非工作日 这一个函数是根据年份获取非工作日的数组 例:'2023-2-12,2023-2-18,2023-2-19...'
function query_fworkday(year) {
var p_w_workday;
Aurora.request({
url: Aurora.getCmp('query_status_link').getUrl(),
para: {
year: year,
user_id: '${/session/@user_id}'
},
success: function(res) {
p_w_workday = res.result.p_w_workday;
},
sync: true,
scope: this
});
if (!Ext.isEmpty(p_w_workday)) {
return p_w_workday.split(",");
}
return [];
}`
//日期转换年月日字符串 这一步是为了获取年月日 也是为了转换字符串
//试了date.format 和 date.toJSON().substr(0, 10) 还有new Date().toISOString().slice(0, 10) 都有问题
//应该是时区问题 因为不能用date类型 所以没去纠结
function iformatDate(date) {
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
return(year + '-' + month + '-' + day);
}
//从stratDate开始获取addDay工作日后的日期
function addWorkDay(stratDate,addDay) {
//获取年份
var year = stratDate.getFullYear();
//获取非工作日数组 因为是根据年份获取的 所以年尾的时候会不准确 可以获取两年的放一起
var fworkday = query_fworkday(year);
for (var i = 0;i < addDay;i++) {
stratDate = stratDate.setDate(stratDate.getDate() + 1);
stratDate=new Date(stratDate);
//这一步是转换成年月日的字符串 方便用indexOf查数组
var ndate = iformatDate(stratDate);
if(fworkday.indexOf(ndate)==-1){
// console.log("不存在");
}else{
i=i-1;
}
}
return stratDate;
}
`