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 相关文章推荐
实现51Map地图接口(示例代码)
Nov 22 Javascript
javascript中的this详解
Dec 08 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
Dec 16 Javascript
多个jQuery版本共存的处理方案
Mar 17 Javascript
JavaScript通过字符串调用函数的实现方法
Mar 18 Javascript
jstree单选功能的实现方法
Jun 07 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
Jul 13 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
Aug 08 jQuery
关于vue编译版本引入的问题的解决
Sep 17 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
Apr 29 Javascript
简单了解JS打开url的方法
Feb 21 Javascript
基于JavaScript实现年月日三级联动
Jun 22 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
flash用php连接数据库的代码
2011/04/21 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
Javascript基础教程之比较操作符
2015/01/18 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python实现XML文件解析的示例代码
2018/02/05 Python
Python Requests模拟登录实现图书馆座位自动预约
2018/04/27 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
美国著名手表网站:Timepiece
2017/11/15 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
维也纳通行证:Vienna PASS
2019/07/18 全球购物
2013英文求职信模板范文
2013/11/15 职场文书
会计助理的岗位职责
2013/11/29 职场文书
请假条格式范文
2014/04/10 职场文书
自荐信怎么写
2015/03/04 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
使用CSS连接数据库的方式
2022/02/28 HTML / CSS
Python matplotlib多个子图绘制整合
2022/04/13 Python