展会信息港展会大全

js实现日历可获得指定日期周数及星期几示例分享
来源:互联网   发布日期:2016-01-26 11:10:10   浏览:2496次  

导读:编写一个简易日历。在文本框中输入要查找的日期,程序可以计算出这一天处在该年份的第几周,并且能判断出这一天到底是星期几,需要的朋友可以参考下应为要有交互,选择了Js来实现,也算是 结对编程 的初试吧。 ...

编写一个简易日历。在文本框中输入要查找的日期,程序可以计算出这一天处在该年份的第几周,并且能判断出这一天到底是星期几,需要的朋友可以参考下

应为要有交互,选择了Js来实现,也算是 结对编程 的初试吧。 我将显示部分用html 写好,点击的按钮触发事件函数是check();

代码如下:

function onCheck(){

var Year = document.getElementById("year").value; //获取文本框的 年var theYear =Year * 1; //转换为number类型 //alert(theYear); // 获取月值

var month = document.getElementById("month");

var index1=month.selectedIndex; var theMonth = month.options[index1].value; //获取月值

var day = document.getElementById("day");

var index2=day.selectedIndex;

var theDay = day.options[index2].value;

// 输入值判断部分

...

//调用核心函数

days(theYear,theMonth,theDay);

}

核心函数days如下:

代码如下:

function days(year,month,day) {

var days = 0;//表示改日期为当年的第几天

//累加月天数

for(var i = 1; i < month; i++ ){

switch(i){

//大月的情况加31

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:{

days += 31;

break;

}

//小月的情况加30

case 4:

case 6:

case 9:

case 11:{

days += 30;

break;

}

//二月的情况,根据年类型来加

case 2:{

if(isLeapYear(year)){

days += 29; //闰年加29

}

else {

days += 28;

}

break;

}

}

}

day = day * 1;

days += day;//月天数之和加上日天数

var date0 = new Date(year,0,1);//当年的第一天是周几

//alert(date0.getDay());

var date1 = new Date(year,month-1,day); //将日期值格式化,0-11代表1月-12月;

//alert((days + date0.getDay()+6)/7);

var nthOfWeek = Math.floor((days + date0.getDay()+6)/7);//向下取整

//alert(nthOfWeek);

var toDay = new Array("星期天","星期一","星期二","星期三","星期四","星期五","星期六");

//day.getDay();根据Date返一个星期中的某其中0为星期日

alert("该日期是一年中的第"+days+"天n"+"是第"+nthOfWeek+"周的"+toDay[date1.getDay()]);

}

调试过程中遇到了许多意外的错误,如类型的不匹配带来的计算错误,如数字的舍入问题;

在队友的协助下,他负责审核和协助抓虫子,我负责实施和编码;

在最后一个环节,对输入值的测试中,我们很好的相互协助,分析不同的输入情况,涵盖了各种可能的意外,很快的完成了功能的完善;

下面是对输入值的判断是否允许的代码 :

代码如下:

if (isNaN(theYear)|| theYear < 0) {

alert("输入有误,请重新输入");

return ;

}

if((theMonth == 2 && theDay > 29 && isLeapYear(theYear))||(theMonth == 2 && theDay > 28 && !isLeapYear(theYear))) {

alert("输入有误,请重新输入");

return ;

}

if((theMonth == 4 || theMonth == 6 || theMonth == 9 || theMonth == 11) && theDay == 31 ) {

alert("输入有误,请重新输入");

return ;

}

赞助本站

人工智能实验室

相关热词: 日期 日历 js

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港