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 相关文章推荐
flash 得到自身url参数的代码
Nov 15 Javascript
举例讲解JavaScript substring()的使用方法
Nov 09 Javascript
很全面的JavaScript常用功能汇总集合
Jan 22 Javascript
简单谈谈Vue 模板各类数据绑定
Sep 25 Javascript
Angularjs中使用layDate日期控件示例
Jan 11 Javascript
常用jQuery选择器汇总
Feb 02 Javascript
Vue 无限滚动加载指令实现方法
May 28 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
微信小程序实现下滑到底部自动翻页功能
Mar 07 Javascript
vue实现输入框自动跳转功能
May 20 Javascript
基于VSCode调试网页JavaScript代码过程详解
Jul 20 Javascript
vue项目中使用多选框的实例代码
Jul 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
解析在PHP中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
ThinkPHP之用户注册登录留言完整实例
2014/07/22 PHP
php微信开发之图片回复功能
2018/06/14 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
JavaScript 学习笔记之数据类型
2015/01/14 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
5 种JavaScript编码规范
2018/01/30 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
2018/07/21 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
python调用windows api锁定计算机示例
2014/04/17 Python
Python异常处理总结
2014/08/15 Python
Python线程中对join方法的运用的教程
2015/04/09 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
python try except 捕获所有异常的实例
2018/10/18 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
详解Python做一个名片管理系统
2019/03/14 Python
python实现ip代理池功能示例
2019/07/05 Python
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
西式结婚主持词
2014/03/14 职场文书
六年级情感作文之500字
2019/10/23 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers