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 相关文章推荐
jquery1.5.1中根据元素ID获取元素对象的代码
Apr 02 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
Apr 24 Javascript
可自己添加html的伪弹出框实现代码
Sep 08 Javascript
node.js中的http.response.getHeader方法使用说明
Dec 14 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
Feb 17 Javascript
动态加载js文件简单示例
Apr 21 Javascript
12个非常实用的JavaScript小技巧【推荐】
May 18 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
Jan 18 Javascript
Vue实现todolist删除功能
Jun 26 Javascript
解决Layui数据表格的宽高问题
Sep 28 Javascript
原生js实现文件上传、下载、封装等实例方法
Jan 05 Javascript
解决vue请求接口第一次成功,第二次失败问题
Sep 08 Javascript
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 操作文件的一些FAQ总结
2009/02/12 PHP
PHP Stream_*系列函数
2010/08/01 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
javascript 变量作用域 代码分析
2009/06/26 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
jQuery实现监控页面所有ajax请求的方法
2015/12/10 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
js实现中文实时时钟
2020/01/15 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
举例介绍Python中的25个隐藏特性
2015/03/30 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
python实现rsa加密实例详解
2017/07/19 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
使用Windows批处理和WMI设置Python的环境变量方法
2019/08/14 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
介绍下Java中==和equals的区别
2013/09/01 面试题
收银员的岗位职责范本
2014/02/04 职场文书
冬季施工防火方案
2014/05/17 职场文书
会计岗位说明书
2014/07/29 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
师德师风自我评价范文
2014/09/11 职场文书
上课说话检讨书
2015/01/27 职场文书
离婚案件原告代理词
2015/05/23 职场文书
宾馆安全管理制度
2015/08/06 职场文书
环保建议书范文
2015/09/14 职场文书