`
nesta13
  • 浏览: 114205 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用JS计算本周在一年中属于第几周

阅读更多
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;
}

 

分享到:
评论
2 楼 nesta13 2008-06-18  
不错,谢谢的你建议
1 楼 eastPoint 2008-06-10  
使用毫秒时间来计算岂不是更快.
而且代码量少得多.

function week(year,month,day){
     var curDate = new Date();
     var beginDate = new Date(year,month,day,0,0,0);
     return Math.round((curDate-beginDate)/1000*60*60*24*7)+1;
}

使用alert(week(2008,1,1));返回1;

相关推荐

    moment.js轻松实现获取当前日期是当年的第几周

    主要介绍了moment.js轻松实现获取当前日期是当年的第几周,需要的朋友可以参考下

    js日期时间格式验证,时间比较

    包括日期格式化、日期计算、比较日期差、判断闰年、日期合法性验证、取得当前日期所在月的最大天数、取得当前日期所在周是一年中的第几周 等。

    javascript入门笔记

    Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 - NodeJS 2、嵌入在浏览器中的JS解释器 JS的发展史: 1、1992年 Nombas 开发...

    javascript函数的解释

    90.window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的URL) 91.document.write()不换行的输出,document.writeln()换行输出 92.document.body....

    计算机理论第一章详细透彻 支持格式WORD

    计算机理论 第一章 信息技术 信息一般说法信息就是信息,它既不是物质也不是能量。 客观《信息》指事物运动的状态及状态变化的方式 信息的行为活动包括:信息的收集,加工,存储,传递,使用。 信息技术指的是用来...

    javascript文档

    indexOf 方法 返回在 String 对象中第一次出现子字符串的字符位置。 不相等运算符 (!=) 比较两个表达式,看是否不相等。 Infinity 属性 返回 Number.POSITIVE_INFINITY 的初始值。 input 属性 返回进行查找的...

    微软JavaScript手册

    indexOf 方法 返回在 String 对象中第一次出现子字符串的字符位置。 不相等运算符 (!=) 比较两个表达式,看是否不相等。 Infinity 属性 返回 Number.POSITIVE_INFINITY 的初始值。 input 属性 返回进行查找的...

    107个常用javascript语句

    90.window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的URL) 91.document.write()不换行的输出,document.writeln()换行输出 92.document.body....

    asp.net知识库

    在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    网上日记本

    第五章软件编码,顾名思义,在这一章节中,我们将对日记本实行软件编码,在实际中解释每段编码的含义,具体完成日记的增加、删除、数据库连接这几部分;第六章软件测试与调试,在这章里,我们对软件进行测试运行,...

    微软开源的跨平台编辑器 Visual Studio Code.zip

    Visual Studio Code 是一个运行于 OS X,Windows 和 Linux 之上的,针对于编写现代 web 和云应用...如果是在短短几年前,今天的宣布势必会引起轩然大波,但是今天,这对我们来说更多的是惊喜。 标签:visual

    计算机应用基础学习过程表现——国开大.docx

    要强迫自己做几个综合实例,分别详细地进行文字编辑,使自己可以从全局的角度掌握整个编辑过程,力争使自己学习完word之后就可以投身到实际的工作中去。 计算机应用基础学习过程表现——国开大全文共2页,当前为第2...

    XML高级编程

    扩展标记语言(Extensible Markup Language, XML)作为一种计算技术出现不过是短短几年前的事情。它是一种概念,以其简便性而颇得人心,它驱动了Internet应用程序编写方式的动态改变。本书的覆盖范围本书解释和演示...

    Tcl_TK编程权威指南pdf

    在过去的几年中,我一直在John Ousterhout的手下工作,最初是在Sun微系统公司,而现在是在Scriptics公司。我一直使自己在很大程度上保持着一个Tcl程序员的角色,而我们工作组中的其他人员则埋头于Tcl本身的C语言实现...

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

Global site tag (gtag.js) - Google Analytics