function theWeek(){
//当前date
var now = new Date();
//每月多少日
var monthOfFullDay = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
//当前日,在本年中第几日
var currentDayOfYear = 0;
//是否为润年,即能被4整除
var isFullYear = false;
var currentDayOfWeekIsLastDay = false;
var firstDayOfYearIsFirstDayOfWeek = false;
//当前年份
var year = 0;
if(now.getYear()>=2000)
year = now.getYear();
else
year = now.getYear() + 1900;
//当前月份
var month = now.getMonth();
//当前日
var day = now.getDate();
//当前星期几
var week = now.getDay();
//为闰年,设isFullYear为true
if(year%4==0){
isFullYear = true;
}
//循环计算天数
for(var i=0;i<monthOfFullDay.length;i++){
//判断数组月份是否小于等于当前月份
if(i<month){
//是闰年和2月份
if(isFullYear && i==1)
currentDayOfYear = currentDayOfYear + 29;
else
currentDayOfYear = currentDayOfYear + monthOfFullDay[i];
}
if(i==month)
currentDayOfYear = currentDayOfYear + day;
}
//设置本年1月1日
var firstDayOfYear = new Date();
firstDayOfYear.setYear(year);
firstDayOfYear.setMonth(0);
firstDayOfYear.setDate(1);
if(firstDayOfYear.getDay()==0){
firstDayOfYearIsFirstDayOfWeek = true;
}
var weeksOfYear = currentDayOfYear;
//本星期是否为最后一日,否,则减去本兴起所有日
if(!currentDayOfWeekIsLastDay){
weeksOfYear = weeksOfYear + firstDayOfYear.getDay();
}
//是否第一个星期为第一日(即星期日),否,则减去本星期所有日
if(!firstDayOfYearIsFirstDayOfWeek){
weeksOfYear = weeksOfYear + (7-week-1);
}
return weeksOfYear/7;
}
分享到:
相关推荐
主要介绍了moment.js轻松实现获取当前日期是当年的第几周,需要的朋友可以参考下
包括日期格式化、日期计算、比较日期差、判断闰年、日期合法性验证、取得当前日期所在月的最大天数、取得当前日期所在周是一年中的第几周 等。
Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 - NodeJS 2、嵌入在浏览器中的JS解释器 JS的发展史: 1、1992年 Nombas 开发...
90.window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的URL) 91.document.write()不换行的输出,document.writeln()换行输出 92.document.body....
计算机理论 第一章 信息技术 信息一般说法信息就是信息,它既不是物质也不是能量。 客观《信息》指事物运动的状态及状态变化的方式 信息的行为活动包括:信息的收集,加工,存储,传递,使用。 信息技术指的是用来...
indexOf 方法 返回在 String 对象中第一次出现子字符串的字符位置。 不相等运算符 (!=) 比较两个表达式,看是否不相等。 Infinity 属性 返回 Number.POSITIVE_INFINITY 的初始值。 input 属性 返回进行查找的...
indexOf 方法 返回在 String 对象中第一次出现子字符串的字符位置。 不相等运算符 (!=) 比较两个表达式,看是否不相等。 Infinity 属性 返回 Number.POSITIVE_INFINITY 的初始值。 input 属性 返回进行查找的...
90.window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的URL) 91.document.write()不换行的输出,document.writeln()换行输出 92.document.body....
在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中...
在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...
第五章软件编码,顾名思义,在这一章节中,我们将对日记本实行软件编码,在实际中解释每段编码的含义,具体完成日记的增加、删除、数据库连接这几部分;第六章软件测试与调试,在这章里,我们对软件进行测试运行,...
Visual Studio Code 是一个运行于 OS X,Windows 和 Linux 之上的,针对于编写现代 web 和云应用...如果是在短短几年前,今天的宣布势必会引起轩然大波,但是今天,这对我们来说更多的是惊喜。 标签:visual
要强迫自己做几个综合实例,分别详细地进行文字编辑,使自己可以从全局的角度掌握整个编辑过程,力争使自己学习完word之后就可以投身到实际的工作中去。 计算机应用基础学习过程表现——国开大全文共2页,当前为第2...
扩展标记语言(Extensible Markup Language, XML)作为一种计算技术出现不过是短短几年前的事情。它是一种概念,以其简便性而颇得人心,它驱动了Internet应用程序编写方式的动态改变。本书的覆盖范围本书解释和演示...
在过去的几年中,我一直在John Ousterhout的手下工作,最初是在Sun微系统公司,而现在是在Scriptics公司。我一直使自己在很大程度上保持着一个Tcl程序员的角色,而我们工作组中的其他人员则埋头于Tcl本身的C语言实现...
在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...