计算当月工作日时间进度

目录

1.按一个月平均算

2.除去星期六星期天算

3.自定义节假日算


1.按一个月平均算

// 获取当前时间
const now = new Date();
// 获取当前年份和月份
const currentYear = now.getFullYear();
const currentMonth = now.getMonth() + 1;
// 计算当月天数
const daysInMonth = new Date(currentYear, currentMonth, 0).getDate();
// 当前是当月的几号
const dayOfMonth = now.getDate();
// 取整
const num = (dayOfMonth / daysInMonth).toFixed(2)
console.log("当前时间进度" + (num * 100) + "%");

2.除去星期六星期天算

// 获取当前时间
const now = new Date();
// 获取当前年份和月份
const currentYear = now.getFullYear();
const currentMonth = now.getMonth() + 1;
// 计算当月天数
const daysInMonth = new Date(currentYear, currentMonth, 0).getDate();
// 当月几号
const dayOfMonth = now.getDate();
// console.log("当月天数:", daysInMonth);
// console.log("当月的第", dayOfMonth, "天");
// 工作日天数
let workday = 0
// 当前工作日天数
let Month = 0
// 当前时间进度
let num = "0%"
// 循环默认天数
for (let i = 1; i < daysInMonth + 1; i++) {
    // 遍历每天获取星期几
    let date = new Date(new Date().getFullYear(), new Date().getMonth(), i);
    let x = date.getDay()
    // 不是节假日工作日就加一
    if (![0, 6].includes(x)) {
        workday++
    }
}
// console.log("默认工作日", workday);
// 默认已工作日
for (let i = 1; i < dayOfMonth + 1; i++) {
    // 遍历每天获取星期几
    let date = new Date(new Date().getFullYear(), new Date().getMonth(), i);
    let x = date.getDay()
    // 不是节假日工作日就加一
    if (![0, 6].includes(x)) {
        Month++
    }
}
// console.log("已工作", Month, "天");
num = (Month / workday).toFixed(3)
console.log("时间进度" + (num * 100) + "%");

3.自定义节假日算

// 获取当前时间
const now = new Date();
// 获取当前年份和月份
const currentYear = now.getFullYear();
const currentMonth = now.getMonth() + 1;
// 计算当月天数
const daysInMonth = new Date(currentYear, currentMonth, 0).getDate();
// 当月几号
const dayOfMonth = now.getDate();
// console.log("当月天数:", daysInMonth);
// console.log("当月的第", dayOfMonth, "天");
// 工作日天数
let workday = 0
// 当前工作日天数
let Month = 0
// 当前时间进度
let num = "0%"
// 自定义节假日
let text = "1,2,8,9,15,16,22,23"
arr = res.data.split(",")
workday = daysInMonth - arr.length
// console.log("自定义工作日", workday);
// 默认已工作日
for (let i = 1; i < dayOfMonth + 1; i++) {
    if (!arr.includes(i.toString())) {
        Month++
    }
}
// console.log("已工作", Month, "天");
num = (Month / workday).toFixed(2)
// console.log("时间进度" + (num * 100) + "%");
标题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巨蟹座守护骑士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值