key2533
2017-10-11 01:56
采纳率: 100%
浏览 2.4k
已采纳

JS 我现在可以做到知道一个月有几周,但是不知道各个周是几号到几号

得到一个月的第一周,第二周...。并且得到对应几号。有会的朋友给点思路吗。 我现在可以做到知道一个月有几周,但是不知道各个周是几号到几号

要实现的效果

现在自己做的进度

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • LUCKSUNBOY 2017-10-11 02:48
    已采纳

    只能先提供一个思路给你具体怎么做你得自己去实施了好吧,首先这个问题,我们是不是首先确定每月的1号是星期几,确定第一周有几天,然后就能确定第一周有几天了,知道第一周是几月几号后面就很简单了,对吧,,先找一个基准日期比如2017年10月1号正好是周日,然后我们算出基准月到当月的1号是多少天,用这个数字减去几能被7整除,然后推出这个月1号是星期几就OK了(比如10月1号到11月1号是31天,31除以7是4点几所以4*7=28,因此31-3=28,那就是周日开始第三天,就是周三了,或者,本周还剩四天那就是11月1号~11月4号)

    点赞 评论
  • Tsui丶 2017-10-11 02:37

    各个周是几号到几号 这个首先你要知道是哪年的哪个月份 (其实你这个就是一个伪需求,实际就是需要一个日历) 这个你完全可以去改一个日历代码 就能额得到你需要的东西

    点赞 评论
  • Tate-lucky 2017-10-11 02:38

    你只要知道这个月1号是星期几不就ok???然后 每周+7天 最后一个星期就是31-4-7-7-7

    点赞 评论
  • CrazZy651314 2017-10-11 05:20
     <%--
      Created by IntelliJ IDEA.
      User: qqg
      Date: 2017/10/11
      Time: 10:31
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page language="java" contentType="text/html; charset=utf-8"
             pageEncoding="utf-8"%>
    <%
        String path = request.getContextPath();
        HttpSession s = request.getSession();
        String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <html>
    <head>
        <title>Title</title>
        <script type="text/javascript" src="/js/jquery.min.js"></script>
    </head>
    <body>
        <script>
            /**
             * 获取当前时间
             */
            function p(s) {
                return s < 10 ? '0' + s: s;
            }
    
            //根据时间获取当前月的周数,每周的周日为一周的开始
            function getWeekByMonth(date) {
    
                var y = date.getFullYear();
                var m = date.getMonth()+1;//月份 0 - 11 ,0代表 1 月
                var d = date.getDate();
                var now2 =y+'-'+p(m)+"-"+p(d);
    
                //获取本月1号对应的周数
                var monOneWeek = new Date(y,m-1,1);
                var week = monOneWeek.getDay();
                //获取本月的天数
                var monOneDay = new Date(y,m,1);
                var date_count =   (new Date(monOneDay.getTime()-1000*60*60*24)).getDate();
    
                var days = date_count;
                var mod = 7 - week;
                var count = 1;
                var start = 1;  //起始日期 1 号开始
                var s = "" , ss = "";
                var end = start + mod - 1;//截止日期
                while (days >= 0){
                    //var end = start + 6;
                    end = end > date_count ? date_count : end ;
                    s += "第" + count + "周:" +y+"年"+p(m)+"月"+"("+p(start)+"-"+p(end)+");"+"\n";
                    start = end + 1;
                    end += 7;
                    days -= 7;
                    ss += days + ",";
                    count ++;
                }
                return s;
            }
            function getData() {
                //alert(p(m)+"周:"+week+"天数:"+date_count);
                //测试月份
                //2017年2月1日
                var date2 = new Date(2017,1,1);
                //2017年1月1日
                var date1 = new Date(2017,0,1);
                //2017年3月1日
                var date3 = new Date(2017,2,1);
                //2017年10月1日
                var date10 = new Date(2017,9,1);
                //2017年11月1日
                var date5 = new Date(2017,10,1);
                alert(getWeekByMonth(date5));
    
            }
        </script>
        <div ><button class="btn btn-success" onclick="getData();">测试</button> </div>
    </body>
    </html>
    
    

    测试成功了。拿去运行,点击**测试**按钮,有你想要的结果。

    点赞 评论
  • key2533 2017-10-11 06:48

    谢谢各位,已经有思路了

    点赞 评论

相关推荐 更多相似问题