<script type="text/javascript">
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
var day = date.getDay();
var today = date.getDate();
if (day == 0) day = 7;
return (today + day) / 7;
}
alert(reDate(2007, 03, 23));
</script>

解决方案 »

  1.   

    var date1 = new Date();
    var date2 = new Date(date1.getFullYear(),date1.getMonth(),1);
    var weekcount = Math.ceil((date1.getDate() + date2.getDay()) / 7);
    alert("今天是本月第" + weekcount + "周");
      

  2.   

    <script type="text/javascript">
    function reDate(a, b, c) {
    var date = new Date(a, b - 1, c);
    var day = date.getDay(), today = date.getDate(), d;
    if (day == 0) day = 7;
    d = today - Math.abs((today - day) % 7 - (today > day ? 0 : 1));
    return Math.ceil(d / 7) + 1;
    }
    alert(reDate(2007, 03, 23));
    alert(reDate(2007, 02, 15));
    </script>
      

  3.   

    //日期类扩展 getWeek() 获取当前日期的星期数
    Date.prototype.getWeek = function(){
    return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay())/7);
    }var date = new Date(); //创建日期实例
    alert(date.getWeek());//获取星期数
      

  4.   

    需要的话加个简单的方法就可以了 //函数 获取输入的参数的日期的星期数
    function weekcount(year,month,day)//参数 年 月 日
    {
    var date1 = new Date(year,month-1,day);
    date1.getWeek();
    return weekcount;
    }
      

  5.   

    @.@
    晕。。修改了下。。
    to ls
    貌似忘记判断星期日的情况了。。
    <script type="text/javascript">
    function reDate(a, b, c) {
    var date = new Date(a, b - 1, c),
    day = date.getDay(), today = date.getDate(),
    d = today - Math.abs((today - day) % 7 - (today > day ? 0 : 1));
    return Math.ceil(d / 7) + 1;
    }
    alert(reDate(2007, 03, 23));
    alert(reDate(2007, 02, 4));
    </script>
      

  6.   

    ..............大哥写得那么复杂 很难算吗?
    今天的日数 加上本月第一周缺少的天数 除以7 用Math.ceil整数即可
      

  7.   

    <script type="text/javascript">
    function reDate(a, b, c) {
    var date = new Date(a, b - 1, c);
    return Math.ceil((c + 7 - (date.getDay() || 7)) / 7);
    }
    alert(reDate(2007, 3, 4));
    </script>
    这个没问题吧?(date.getDay() || 7)是为了判断星期日的情况。。
    否则星期日会被算到下一个星期里去计算方法。。
    [天数 + 星期总数(7) - 当前星期数] 除以7 求Math.ceil值
      

  8.   

    实在不行就判断一下啦 那也就是多加个1的问题 没多复杂//日期类扩展 getWeek() 获取当前日期的星期数
    Date.prototype.getWeek = function(){
    return Math.ceil((this.getDate()+ 1 +(new Date(this.getFullYear(),this.getMonth(),1)).getDay())/7);
    }var date = new Date(); //创建日期实例
    alert(date.getWeek());//获取星期数
      

  9.   

    厄.........不好意思是减1//日期类扩展 getWeek() 获取当前日期的星期数
    Date.prototype.getWeek = function(){
    return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay() - 1)/7);
    }var date = new Date(); //创建日期实例
    alert(date.getWeek());//获取星期数
      

  10.   

    555555 最多只能连续回复3次  我知道错了 可惜改不了 
    bug 如果是这个个月第一天刚好是星期天时会得到0 //日期类扩展 getWeek() 获取当前日期的星期数
    Date.prototype.getWeek = function(){
    return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay() - 1)/7 || 1);
    }var date = new Date(); //创建日期实例
    alert(date.getWeek());//获取星期数
    仔细想了想 用2个日期元素 效率比较低 还是你的好 我认输了
      

  11.   

    忽忽。。
    return Math.ceil((c + 7 - (date.getDay() || 7)) / 7);
    感觉这个比较好的说。。
    是我太执着了。。
    主要原因是第一次回复比较白痴。。所以我感到郁闷。。又顶了几贴。。
    以后不干这事了。。^o^
    哈哈。。生了星星就可以连续回复了。。没有三次的限制的说加油噢。。
    具体能回复多少次我就不太清楚了。。 (不敢测试的说被删除回复貌似减信誉的样子。。)
      

  12.   

    http://www.blogjava.net/mxx/archive/2006/09/27/72159.html常用公历日期处理程序
    //根据日期返回该日期所在年的周数
    Date.prototype.getWeekNum = function (){
        var dat = new Date(this.getFullYear(),0,1);
        var week = dat.getDay();
        week = (week==0?7:week);
        var days = this.calDateDistance(dat,"dd")+1;
        return ((days + 6 - this.getDay() - 7 + week)/7);
    }
    得到一号是第几周,再算出那天是第几周,就知道是当月第几周了
      

  13.   


            /// <summary>
            /// 获取日期在当前月的第几周
            /// </summary>
            /// <param name="dt"></param>
            /// <returns></returns>
            public static string getWeekIndex(DateTime dt)
            {
                DateTime weekbegain = new DateTime();
                DateTime weekend = new DateTime();
                int weekCount = 0;
                int MweekIndex = 0;            //循环取出 月 的每周 开始和结束时间,判断dt所在位置
                for (int i = 1; i < 10; i++)
                {
                    //调用方法,获取每周的开始结束时间
                    GetMonthWeek(dt, out weekCount, i, out weekbegain, out weekend);
                    //如果 dt在某周的时间段内,则起所在周的值为i,退出循环
                    if (dt.Date.Ticks >= weekbegain.Date.Ticks && dt.Date.Ticks <= weekend.Date.Ticks)
                    {
                        MweekIndex = i;
                        break;
                    }
                }
                //如果周索引在大于0且小于等于4之间,(通常每月只有周)
                if (MweekIndex <= 4 && MweekIndex > 0)
                {
                    return dt.Year + "年" + dt.Month + "月,第" + MweekIndex + "周("+dt.ToShortDateString()+")";
                }
                else
                {
                    //如果周索引等于5,切周结束时间小于等于月末,则将其算问第5周
                    if (MweekIndex >= 5 && dt.Date.Ticks <= Convert.ToDateTime(dt.Date.Year + "-" + dt.Date.Month + "-1").Date.AddMonths(1).AddDays(-1).Date.Ticks)
                    {
                        return dt.Year + "年" + dt.Month + "月,第" + MweekIndex + "周(" + dt.ToShortDateString() + ")";
                    }
                    //如果要将日期算如下一个月,且当前月份为12月,则须添加年份
                    if ((dt.Month + 1) > 12)
                    {
                        return (dt.Year + 1) + "年" + 1 + "月,第" + 1 + "周(" + dt.ToShortDateString() + ")";
                    }
                    else
                    {
                        return dt.Year + "年" + (dt.Month + 1) + "月,第" + 1 + "周(" + dt.ToShortDateString() + ")";
                    }
                }
            }        /// <summary>
            /// 获取某年某月的周数(即某年的某月有几周)和某一周的开始时间与结束时间。周从周一开始计算
            /// 说明:月的开头1号若不足一周,从上一个月补上,月的末尾若不足一周,则充当下个月的第一周部分
            /// write by dreamzgj 2010-2-26
            /// </summary>
            /// <param name="dTime">时间</param>
            /// <param name="WeekCount" >返回该月的周数</param>
            /// <param name="WeekIndex">周索引(即该月的第几周)</param>
            /// <param name="WeekBeginDate">返回该周的开始时间</param>
            /// <param name="WeekEndDate">返回该周的结束时间</param>
            public static void GetMonthWeek(DateTime dTime, out int WeekCount, int MWeekIndex, out DateTime WeekBeginDate, out DateTime WeekEndDate)
            {
                //该月的第一天日期
                DateTime MFirstDay = Convert.ToDateTime(dTime.Date.Year + "-" + dTime.Date.Month + "-1");
                //该月第一天的周几(如:周一,周二...)
                int WeekIndex = (int)MFirstDay.DayOfWeek;
                if (WeekIndex == 0)
                {
                    WeekIndex = 7;
                }
                //该月第一周的开始时间(可能为上个月的某一天)
                DateTime FirstWeekBeginDate = MFirstDay.Date.AddDays(Convert.ToDouble(-WeekIndex + 1));
                //该月第一周的结束时间
                DateTime FirstWeekEndDate = FirstWeekBeginDate.AddDays(7).AddSeconds(-1);            //该月的最后一天时期
                DateTime MLastDay = Convert.ToDateTime(dTime.Date.Year + "-" + dTime.Date.Month + "-1").Date.AddMonths(1).AddDays(-1);
                //排去第一周剩下的天数
                int DayCount = MLastDay.Date.Day - FirstWeekEndDate.Date.Day;
                //该月的周数
                WeekCount = DayCount / 7 + 1;            if (MWeekIndex > WeekCount)
                    MWeekIndex = WeekCount;
                if (WeekIndex < 1)
                    MWeekIndex = 1;            //计算该周的开始时间和结束时间
                WeekBeginDate = FirstWeekBeginDate.AddDays((MWeekIndex - 1) * 7);
                WeekEndDate = FirstWeekEndDate.AddDays((MWeekIndex - 1) * 7);
            }