需要引用第三方的day.js库,设定了只显示过去60天的周数,可自行修改

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自然周数下拉列表</title>
    <script src="/js/day.1.11.12.js"></script>
</head>
<body>
<select id="ddlWeeks"></select>
<script>
    function getWeekNumber(date) {
        var d = new Date(date);
        d.setHours(0, 0, 0);
        d.setDate(d.getDate() + 4 - (d.getDay() || 7));
        var yearStart = new Date(d.getFullYear(), 0, 1);
        var weekNo = Math.ceil(((d - yearStart) / 86400000) / 7);
        return weekNo;
    }
    function populateWeekDropdown(year) {
        var select = document.getElementById('ddlWeeks');
        var numWeeks = new Date(year, 11, 31).getDay() === 4 || new Date(year, 11, 31).getDay() === 5 ? 54 : 53;
        for (var i = 1; i <= numWeeks; i++) {
            var weekNumber = i < 10 ? '0' + i : i;
            var start_end = getWeekStartAndEndDate(year, weekNumber);
            var start = start_end.start;
            var end = start_end.end;
            if (daysBetween(start, new Date()) > 60) {
                continue;
            }
            var option = document.createElement('option');
            option.value = dayjs(start).format("YYYY-MM-DD");//year + 'W' + weekNumber;
            option.text = weekNumber + "周:" + dayjs(start).format("YY-MM-DD");
            select.appendChild(option);
            if (end > new Date()) {
                break;
            }
        }
    }

    function daysBetween(date1, date2) {
        const oneDay = 86400000; // 一天的毫秒数
        const date1Ms = date1.getTime(); // 将日期转换为时间戳
        const date2Ms = date2.getTime(); // 同上
        // 计算两个日期之间相差的毫秒数
        const diff = Math.abs(date1Ms - date2Ms); 
        // 将毫秒数转换为天数
        return Math.round(diff / oneDay); 
    }

    function getWeekStartAndEndDate(year, weekNumber) {
        const date = new Date(year, 0, 1); // 获取该年份的第一天
        const dayOfWeek = date.getDay() || 7; // 获取第一天是星期几(‌周日为7,‌周一为1,‌以此类推)‌
        const offset = date.getDate() - dayOfWeek + (weekNumber - 1) * 7 + 1; // 计算该周第一天的日期偏移量
        const start = new Date(date.setDate(offset)); // 设置起始日期
        const end = new Date(start); // 复制起始日期对象
        end.setDate(start.getDate() + 6); // 设置结束日期为起始日期加6天
        return { start, end };
    }


    var currentYear = new Date().getFullYear();
    var curMonth = new Date().getMonth();
    if (curMonth <= 1) {
        populateWeekDropdown(currentYear - 1);
    }
    populateWeekDropdown(currentYear);
</script>

</body>
</html>

 

posted @ 2024-08-04 08:21 猫狼 阅读(20) 评论(0) 推荐(0) 编辑
摘要: JObject jo = JObject.FromObject(pd); if (jo.SelectToken("elements") is JArray ja) { //((JObject)(jae[0])).Remove("type"); JObject jac = (JObject)(ja[0 阅读全文
posted @ 2024-07-27 08:22 猫狼 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 迷迷糊糊梦见学校又要去交流了 Jquery的id选择器不支持点号? 阅读全文
posted @ 2024-07-26 06:05 猫狼 阅读(10) 评论(0) 推荐(0) 编辑
摘要: VBA不太会,要写一个题号检查的代码,实在不习惯反人类的语法格式,函数调用不打括号,返回值为函数等于,字符编码不一样,Find.Excute不支持变量,等等……每一个都让人抓耳挠腮, 记录一下半天,就写了下面几行代码, '检查题号 2024-07-24 Sub CheckOrderNo() Dim 阅读全文
posted @ 2024-07-24 13:31 猫狼 阅读(10) 评论(0) 推荐(0) 编辑
摘要: function CreateAll() { var len = $("[src='/images/err.png'][title='点击重新生成']").length; var layerMsg = layer.open({ title: "正在生成,共有" + len + "个试题正在生成", 阅读全文
posted @ 2024-07-20 13:24 猫狼 阅读(28) 评论(0) 推荐(0) 编辑
摘要: /// <summary> /// 返回文件夹及子目录的文件夹 /// </summary> /// <param name="directory"></param> /// <param name="files"></param> public static void GetFiles(strin 阅读全文
posted @ 2024-07-15 09:54 猫狼 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 在被访问 的服务器IIS中 Access-Control-Allow-Origin 添加请求的服务器的域名 阅读全文
posted @ 2024-06-22 19:35 猫狼 阅读(3) 评论(0) 推荐(0) 编辑
摘要: var thead = $.map(data[0],function (v, k) { return k; }); var table = '<table class="tablesorter" id="tt"><thead><tr>' + $.map(thead, function(val, ke 阅读全文
posted @ 2024-06-22 07:52 猫狼 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 效果如下图 在开优网络提供的代码包的基础上修改,采用了2024年民政部发部的行政区划代码数据,区域更全面,且压缩了长度, 为原代码的一半大小,整所数包只有100KB了,并修改了配色,比常用的三级SELECT控件联动要好看的多. 代码下载地址:https://download.csdn.net/dow 阅读全文
posted @ 2024-06-09 23:28 猫狼 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 改自这位兄台的一段代码 https://www.cnblogs.com/xiayang/archive/2010/07/19/1780566.html 1 /// <summary> 2 /// 生成一个树形的表样, 3 /// </summary> 4 /// <param name="dtNod 阅读全文
posted @ 2024-06-08 13:45 猫狼 阅读(6) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示