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 相关文章推荐
Firefox+FireBug使JQuery的学习更加轻松愉快
Jan 01 Javascript
jquery 提示信息显示后自动消失的具体实现
Dec 18 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
Dec 04 Javascript
仅30行代码实现Javascript中的MVC
Feb 15 Javascript
jquery+CSS3实现3D拖拽相册效果
Jul 18 Javascript
浅谈JavaScript的闭包函数
Dec 08 Javascript
Vue2.0实现将页面中表格数据导出excel的实例
Aug 09 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
Aug 31 Javascript
说说Vuex的getters属性的具体用法
Apr 15 Javascript
JavaScript实现放大镜效果代码示例
Apr 29 Javascript
vue调用本地摄像头实现拍照功能
Aug 14 Javascript
解决elementui表格操作列自适应列宽
Dec 28 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
Zerg兵种介绍
2020/03/14 星际争霸
php文件怎么打开 如何执行php文件
2011/12/21 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
php数组遍历类与用法示例
2019/05/24 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
python多线程操作实例
2014/11/21 Python
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
Python中property属性实例解析
2018/02/10 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
Python bytes string相互转换过程解析
2020/03/05 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
电钳专业个人求职信
2014/01/04 职场文书
员工考核管理制度
2014/02/02 职场文书
人力资源经理的岗位职责范本
2014/02/28 职场文书
合作意向书范本
2014/03/31 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
导游词之张家界
2019/10/31 职场文书
详解Redis主从复制实践
2021/05/19 Redis
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题