源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)

  • 时间:2020-08-23 16:44 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
应为要有交互,选择了Js来实现,也算是 结对编程 的初试吧。 我将显示部分用html 写好,点击的按钮触发事件函数是check();
[u]复制代码[/u] 代码如下:
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如下:
[u]复制代码[/u] 代码如下:
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()]); }
调试过程中遇到了许多意外的错误,如类型的不匹配带来的计算错误,如数字的舍入问题; 在队友的协助下,他负责审核和协助抓虫子,我负责实施和编码; 在最后一个环节,对输入值的测试中,我们很好的相互协助,分析不同的输入情况,涵盖了各种可能的意外,很快的完成了功能的完善; 下面是对输入值的判断是否允许的代码 :
[u]复制代码[/u] 代码如下:
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 ; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部