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 相关文章推荐
Struts2的s:radio标签使用及用jquery添加change事件
Apr 08 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
Dec 30 Javascript
table行随鼠标移动变色示例
May 07 Javascript
javascript 原型链维护和继承详解
Nov 26 Javascript
js给网页加上背景音乐及选择音效的方法
Mar 03 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
Aug 21 Javascript
每天一篇javascript学习小结(属性定义方法)
Nov 19 Javascript
javascript类型系统 Window对象学习笔记
Jan 07 Javascript
学习Angularjs分页指令
Jul 01 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
Dec 31 Javascript
Vue 进阶教程之v-model详解
May 06 Javascript
vue项目中js-cookie的使用存储token操作
Nov 13 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
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
PHP中each与list用法分析
2016/01/08 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
JavaScript 语法集锦 脚本之家基础推荐
2009/11/15 Javascript
jQuery学习总结之元素的相对定位和选择器(持续更新)
2011/04/26 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
基于JavaScript实现屏幕滚动效果
2017/01/18 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
详谈angularjs中路由页面强制更新的问题
2017/04/24 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
实例讲解React 组件
2020/07/07 Javascript
WebPack工具运行原理及入门教程
2020/12/02 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
python实现文本去重且不打乱原本顺序
2016/01/26 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
python实现验证码识别功能
2018/06/07 Python
Python如何省略括号方法详解
2020/03/21 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
里程积分管理买卖交换平台:Points.com
2017/01/13 全球购物
大学毕业生自我鉴定
2013/11/05 职场文书
怎么写好自荐书
2014/03/02 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
个人融资协议书
2014/10/02 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS