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


Posted in Javascript onMarch 14, 2014

应为要有交互,选择了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 ;
}
Javascript 相关文章推荐
jquery 图片缩放拖动的简单实例
Jan 08 Javascript
js toFixed()方法的重写实现精度的统一
Mar 06 Javascript
JavaScript设计模式之装饰者模式介绍
Dec 28 Javascript
jquery对象与DOM对象转化
Feb 08 Javascript
解决ztree搜索中多级菜单展示不全问题
Jul 05 Javascript
细说webpack源码之compile流程-入口函数run
Dec 26 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
Mar 04 Javascript
微信小程序中显示倒计时代码实例
May 09 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
Jun 18 jQuery
JavaScript箭头函数中的this详解
Jun 19 Javascript
继承行为在 ES5 与 ES6 中的区别详解
Dec 24 Javascript
Vue 事件的$event参数=事件的值案例
Jan 29 Vue.js
javascript将相对路径转绝对路径示例
Mar 14 #Javascript
Node.js和PHP根据ip获取地理位置的方法
Mar 14 #Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
Mar 13 #Javascript
javascript回车完美实现tab切换功能
Mar 13 #Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
Mar 13 #Javascript
JQuery中extend使用介绍
Mar 13 #Javascript
js中用window.open()打开多个窗口的name问题
Mar 13 #Javascript
You might like
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
克隆一个新项目的快捷方式
2013/04/10 PHP
PHP crc32()函数讲解
2019/02/14 PHP
PHP中str_split()函数的用法讲解
2019/04/11 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
ng-alain表单使用方式详解
2018/07/10 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
Python Logging 日志记录入门学习
2018/06/02 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
python def 定义函数,调用函数方式
2020/06/02 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
空乘英文求职信
2014/04/13 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
购房委托书
2014/10/15 职场文书
社区党建工作汇报材料
2014/10/27 职场文书
员工2014年度工作总结
2014/12/09 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
基层工作经历证明
2015/06/19 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python